set basic repo structure

This commit is contained in:
2024-08-05 07:18:10 +00:00
parent 1711be891f
commit 388e4fda04
27 changed files with 1771 additions and 1 deletions

41
grammar/MXParser.g4 Normal file
View File

@ -0,0 +1,41 @@
parser grammar MXParser;
options { tokenVocab=MXLexer; }
mxprog
: function* EOF
;
function
: type ID LPAREN RPAREN block
;
type
: INT
| VOID
;
block
: LBRACE statement* RBRACE
;
statement
: expression SEMICOLON
| returnStmt
| ifStmt
;
expression
: INT_LITERAL
| ID
| expression (PLUS | MINUS | MULTIPLY | DIVIDE) expression
| LPAREN expression RPAREN
;
returnStmt
: RETURN expression? SEMICOLON
;
ifStmt
: IF LPAREN expression RPAREN statement (ELSE statement)?
;