テストファイルを解析するために、識別子が数字で始まることを許可したいと思います。
私のルールは:
ID : ('a'..'z' | 'A'..'Z' | '0'..'9' | '_') ('a'..'z' | 'A'..'Z' | '0'..'9' | '_' | '&' | '/' | '-' | '.')*
;
ただし、このファイルの番号も一致させる必要があります。そのための私のルールは次のとおりです。
INT : '0'..'9'+
;
INTが一致することは決してないので、明らかにAntlrはこれを許可しません。
これを許可する方法はありますか?具体的には、INTEGERの後にスペースのないIDをIDとして照合し、その後にスペースが続く場合にのみINTトークンを作成したいと思います。
例えば:
3BOB -> [ID with text "3BOB"]
3 BOB -> [INT with text "3"] [ID with text "BOB"]