Terminal and nonterminal functions
![]() | It has been suggested that this article be merged into Terminal and nonterminal symbols. (Discuss) Proposed since September 2018. |
![]() | It has been suggested that this article be merged with terminal and nonterminal symbols. (Discuss) Proposed since March 2018. |
In computer science, a nonterminal function is a function (node) in a parse tree which is either a root or a branch in that tree whereas a terminal function is a function (node) in a parse tree which is a leaf.
Background

A parse tree is made up of nodes and branches.[1] In the picture below the parse tree is the entire structure, starting from S and ending in each of the leaf nodes (John,ball,the,hit).
In a parse tree, each node is either a root node, a branch node, or a leaf node. In the above example, S is a root node, NP and VP are branch nodes, while John, ball, the, and hit are all leaf nodes.
Nodes can also be referred to as parent nodes and child nodes. A parent node is one which has at least one other node linked by a branch under it. In the example, S is a parent of both NP and VP. A child node is one which has at least one node directly above it to which it is linked by a branch of the tree. Again from our example, hit is a child node of V.