This hierarchy can also be seen as a tree:  This tree is called a "parse tree" or "concrete syntax tree" of the string, by contrast with the abstract syntax tree. In this case the presented leftmost and the rightmost derivations define the same parse tree; however, there is another rightmost derivation of the same string  which defines a string with a different structure  and a different parse parse tree:  Note however that both parse trees can be obtained by both leftmost and rightmost derivations. For example, the last tree can be obtained with the leftmost derivation as follows:  If a string in the language of the grammar has more than one parsing tree, then the grammar is said to be an "ambiguous grammar". Such grammars are usually hard to parse because the parser cannot always decide which grammar rule it has to apply. Usually, ambiguity is a feature of the grammar, not the language, and an unambiguous grammar can be found that generates the same context-free language. However, there are certain languages that can only be generated by ambiguous grammars; such languages are called "inherently ambiguous languages". Here is a context-free grammar for syntactically correct infix algebraic expressions in the variables x, y and z:  This grammar can, for example, generate the string  as follows:  Note that many choices were made underway as to which rewrite was going to be performed next. These choices look quite arbitrary. As a matter of fact, they are, in the sense that the string finally generated is always the same. For example, the second and third rewrites  could be done in the opposite order:  Also, many choices were made on which rule to apply to each selected . Changing the choices made and not only the order they were made in usually affects which terminal string comes out at the end. Let's look at this in more detail. Consider the parse tree of this derivation:  Starting at the top, step by step, an S in the tree is expanded, until no more unexpanded es (nonterminals) remain. Picking a different order of expansion will produce a different derivation, but the same parse tree. The parse tree will only change if we pick a different rule to apply at some position in the tree. But can a different parse tree still produce the same terminal string, which is in this case? Yes, for this particular grammar, this is possible. Grammars with this property are called ambiguous.