ramming
    languages, the characters allowed in keywords and identifiers are in the same
    set (alphanumerics plus underscores). If the lexer added the &ldquo;identifier&rdquo;
    rule before the &ldquo;keyword&rdquo; rule, all keywords would match identifiers and thus
    incorrectly highlight as identifiers instead of keywords. The same idea
    applies to function, constant, etc. tokens that you may want to distinguish
    between: their rules should come before identifiers.</p>

    <p>So what about