The program generated by Lex matches the longest possible
prefix of the input. For example, if <= appears in the input
then rather than matching only the < (which is also a legal pattern)
the entire string is matched.
Lex keywords are:
yylval: value returned by the lexical analyzer (pointer to token)
yytext: pointer to lexeme (array of characters that matched
the pattern)
yyleng: length of the lexeme (number of chars in yytext).
If two rules match a prefix of the same and greatest length then the
first rule appearing (sequentially) in the translation section takes
precedence.
For example, if is matched by both if and {id}.
Since the if rule comes first, that is the match that is used.