begin implementation of stups grammar
This commit is contained in:
32
src/test/resources/exampleGrammars/Grammar.grammar
Normal file
32
src/test/resources/exampleGrammars/Grammar.grammar
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
START: S
|
||||||
|
EPS: epsilon
|
||||||
|
|
||||||
|
// Structures:
|
||||||
|
NTERM: S CLASS_CNT BLOCK_CNT
|
||||||
|
NTERM: DECLARATION DECLARE_INT DECLARE_STRING DECLARE_BOOLEAN
|
||||||
|
|
||||||
|
// Token:
|
||||||
|
TERM: PUBLIC STATIC CLASS IDENTIFIER IDENTIFIER_MAIN
|
||||||
|
TERM: L_BRACE R_BRACE L_BRACKET R_BRACKET L_PAREN R_PAREN
|
||||||
|
TERM: STRING_TYPE INTEGER_TYPE BOOLEAN_TYPE VOID_TYPE
|
||||||
|
TERM: SEMICOLON
|
||||||
|
|
||||||
|
// -------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// class IDENTIFIER { CLASS_CNT }
|
||||||
|
S -> CLASS IDENTIFIER L_BRACE CLASS_CNT R_BRACE
|
||||||
|
|
||||||
|
// public static void main(String[] args) { BLOCK_CNT }
|
||||||
|
CLASS_CNT -> PUBLIC STATIC VOID_TYPE IDENTIFIER_MAIN L_PAREN STRING_TYPE L_BRACKET R_BRACKET IDENTIFIER R_PAREN L_BRACE BLOCK_CNT R_BRACE
|
||||||
|
|
||||||
|
BLOCK_CNT -> DECLARATION | EPS
|
||||||
|
|
||||||
|
// Declaration: TYPE IDENTIFIER = LITERAL;
|
||||||
|
DECLARATION -> DECLARE_INT | DECLARE_STRING | DECLARE_BOOLEAN
|
||||||
|
DECLARE_INT -> INTEGER_TYPE IDENTIFIER ASSIGN INTEGER_LIT SEMICOLON
|
||||||
|
DECLARE_STRING -> STRING_TYPE IDENTIFIER ASSIGN STRING_LIT SEMICOLON
|
||||||
|
DECLARE_BOOLEAN -> BOOLEAN_TYPE IDENTIFIER ASSIGN BOOLEAN_LIT SEMICOLON
|
||||||
|
|
||||||
|
// Predicate
|
||||||
|
|
||||||
|
// Operation
|
||||||
Reference in New Issue
Block a user