Antlr4 how to build a grammar allowed keywords as identifier

后端 未结 1 1605
暗喜
暗喜 2020-12-07 02:37

This is a demo code

label:
var id
let id = 10
goto label

If allowed keyword as identifier will be

let:
var var
let var = 10         


        
1条回答
  •  隐瞒了意图╮
    2020-12-07 03:18

    The simplest way is to define a parser rule for identifiers:

    id: ID | VAR | LET;
    
    VAR: 'var';
    LET: 'let';
    ID: [a-zA-Z] [a-zA-Z0-9]*;
    

    And then use id instead of ID in your parser rules.

    A different way is to use ID for identifiers and keywords, and use predicates for disambiguation. But it's less readable, so I'd use the first way instead.

    0 讨论(0)
提交回复
热议问题