I'm trying to create an ANTLR 4 grammar to understand this code:
package main () {
name1;
name2;
}
Here is what I have so far:
grammar Crimson;
// Parser rules
program
: packageDefinitionList EOF
;
packageDefinitionList
: packageDefinition+
;
packageDefinition
: Package Identifier parameterList packageBody
;
parameterList
: parameter*
;
parameter
: parameterType Identifier
;
packageBody
: statement*
;
parameterType
: Integer | Boolean
;
statement
: Identifier
;
// Lexer rules
Package
: 'package'
;
Integer
: 'int'
;
Boolean
: 'bool'
;
Identifier
: NonDigit+
;
fragment NonDigit
: [a-zA-Z_]
;
When I put these The ANTLR Lab Simulation, I receive the error: 1:0 mismatched input 'package' expecting 'package'
.
I've been staring at example after example, and I'm using the example C grammar on the Lab for guidance, yet I have no clue how to make this thing work...
Note: from link 2 I think I may be incorrectly defining my lexer rules, but it hasn't helped me fix the issue :(