Grammar hierSysParser ANTLR-generated HTML file from /usr/src/packages/BUILD/v2/HierSysBuild/grammar/hierSys.g
Terence Parr, MageLang Institute
|
Definition of parser hierSysParser, which is a subclass of LLkParser. sys_Description : ( aA_Integer_Parameter_Declaration )* ( hier_system_Pipe_Declaration )* ( hier_System )* ; aA_Integer_Parameter_Declaration : PARAMETER SIMPLE_IDENTIFIER aA_Integer_Parameter_Expression ; hier_system_Pipe_Declaration : ( ( LIFO ) | ( NOBLOCK ) | ( SHIFTREG ) | ) PIPE ( SIMPLE_IDENTIFIER )+ COLON UINT LESS UINTEGER GREATER ( DEPTH aA_Integer_Parameter_Expression | ) ( SIGNAL | ) ( P2P | ) ( BYPASS | ) ; hier_System : ( SYSTEM SIMPLE_IDENTIFIER ( LIBRARY SIMPLE_IDENTIFIER | ) ) IN ( hier_system_Pipe_Base )* OUT ( hier_system_Pipe_Base )* LBRACE ( hier_system_Pipe_Base )* ( ( hier_System_Instance ) | ( rtl_Thread ) | ( rtl_String ) )* RBRACE ; hier_system_Pipe_Base : ( NOBLOCK | ) ( ( P2P ) | ( SHIFTREG ) | ) ( BYPASS | ) ( PIPE | ( SIGNAL ) ) SIMPLE_IDENTIFIER ( UINTEGER | ) ( DEPTH UINTEGER | ) ; hier_System_Instance : INSTANCE SIMPLE_IDENTIFIER ( SIMPLE_IDENTIFIER | ) COLON SIMPLE_IDENTIFIER ( SIMPLE_IDENTIFIER IMPLIES SIMPLE_IDENTIFIER )* ; rtl_Thread : THREAD SIMPLE_IDENTIFIER ( rtl_ObjectDeclaration )* rtl_DefaultStatementBlock ( rtl_LabeledBlockStatement )+ rtl_ImmediateStatementBlock rtl_TickStatementBlock ; rtl_String : STRING SIMPLE_IDENTIFIER COLON SIMPLE_IDENTIFIER ( SIMPLE_IDENTIFIER IMPLIES SIMPLE_IDENTIFIER )* ; aA_Integer_Parameter_Expression : ( UINTEGER ) | ( HEXCSTYLEINTEGER ) | ( SIMPLE_IDENTIFIER ) | ( aA_Integer_Parameter_Expression_Nontrivial ) ; rtl_ObjectDeclaration : ( ( VARIABLE ) | ( CONSTANT ) | ( SIGNAL ) | ( IN ( PIPE | ) ) | ( OUT ( PIPE | ) ) ) ( SIMPLE_IDENTIFIER )+ COLON ( rtl_Type_Declaration ) ( ASSIGNEQUAL rtl_Expression | ) ; rtl_DefaultStatementBlock : DEFAULT ( ( ( rtl_SplitStatement ) | ( rtl_AssignStatement ) | ( rtl_LogStatement ) ) )* ; rtl_LabeledBlockStatement : rtl_Label LBRACE ( rtl_SimpleStatement )+ RBRACE ; rtl_ImmediateStatementBlock : NOW ( ( ( rtl_SplitStatement ) | ( rtl_AssignStatement ) | ( rtl_LogStatement ) | ( rtl_IfStatement ) ) )* ; rtl_TickStatementBlock : TICK ( ( ( rtl_SplitStatement ) | ( rtl_AssignStatement ) | ( rtl_LogStatement ) | ( rtl_IfStatement ) ) )* ; rtl_SplitStatement : SPLIT ( NOW | ) LPAREN ( rtl_Expression ) RPAREN LPAREN ( rtl_Object_Reference )+ RPAREN ; rtl_AssignStatement : ( NOW | ) ( rtl_Expression ) ASSIGNEQUAL ( rtl_Expression ) ; rtl_LogStatement : LOG SIMPLE_IDENTIFIER ; rtl_IfStatement : IF ( rtl_Expression ) rtl_BlockStatement ( ELSE rtl_BlockStatement | ) ; rtl_Type_Declaration : ( ( rtl_IntegerType_Declaration ) | ( rtl_UnsignedType_Declaration ) | ( rtl_SignedType_Declaration ) | ( rtl_ArrayType_Declaration ) ) ; rtl_Expression : ( ( rtl_Constant_Literal_Expression ) | ( rtl_Object_Reference ) | ( rtl_Slice_Expression ) | ( rtl_Unary_Expression ) | ( rtl_Binary_Expression ) | ( rtl_Ternary_Expression ) ) ; rtl_SimpleStatement : ( ( rtl_AssignStatement ) | ( rtl_SplitStatement ) | ( rtl_NullStatement ) | ( rtl_LogStatement ) | ( rtl_GotoStatement ) | ( rtl_IfStatement ) ) ; rtl_NullStatement : NuLL ; rtl_GotoStatement : GOTO SIMPLE_IDENTIFIER ; rtl_Object_Reference : SIMPLE_IDENTIFIER ( ( REQ ) | ( ACK ) | ) ( LBRACKET ( rtl_Expression )+ RBRACKET | ) ; rtl_BlockStatement : LBRACE ( rtl_SimpleStatement )+ RBRACE ; rtl_Label : LESS SIMPLE_IDENTIFIER GREATER ; rtl_Constant_Literal_Expression : LPAREN rtl_Type_Declaration RPAREN ( ( UINTEGER ) | ( BINARY ) | ( HEXADECIMAL ) ) ( COMMA ( ( UINTEGER ) | ( BINARY ) | ( HEXADECIMAL ) ) )* ; rtl_Slice_Expression : LPAREN SLICE rtl_Expression UINTEGER UINTEGER RPAREN ; rtl_Unary_Expression : LPAREN rtl_Unary_Operation rtl_Expression RPAREN ; rtl_Binary_Expression : LPAREN rtl_Expression rtl_Binary_Operation rtl_Expression RPAREN ; rtl_Ternary_Expression : LPAREN MUX rtl_Expression rtl_Expression rtl_Expression RPAREN ; rtl_Unary_Operation : NOT ; rtl_Binary_Operation : ( OR ) | ( AND ) | ( NOR ) | ( NAND ) | ( XOR ) | ( XNOR ) | ( SHL ) | ( SHR ) | ( ROL ) | ( ROR ) | ( PLUS ) | ( MINUS ) | ( MUL ) | ( DIV ) | ( EQUAL ) | ( NOTEQUAL ) | ( LESS ) | ( LESSEQUAL ) | ( GREATER ) | ( GREATEREQUAL ) ; rtl_Operation : ( rtl_Unary_Operation ) | ( rtl_Binary_Operation ) ; rtl_IntegerType_Declaration : INTEGER ( MINUS | ) UINTEGER ( MINUS | ) UINTEGER ; rtl_UnsignedType_Declaration : UNSIGNED LESS UINTEGER GREATER ; rtl_SignedType_Declaration : SIGNED LESS UINTEGER GREATER ; rtl_ArrayType_Declaration : ARRAY ( LBRACKET UINTEGER RBRACKET )+ OF rtl_Type_Declaration ; aA_Integer_Parameter_Expression_Nontrivial : LBRACE ( ( NOT aA_Integer_Parameter_Expression ) | ( MINUS aA_Integer_Parameter_Expression ) | ( aA_Integer_Parameter_Expression rtl_Binary_Op aA_Integer_Parameter_Expression ) | ( MUX aA_Integer_Parameter_Expression aA_Integer_Parameter_Expression aA_Integer_Parameter_Expression ) ) RBRACE ; rtl_Binary_Op : ( OR ) | ( AND ) | ( NOR ) | ( NAND ) | ( XOR ) | ( XNOR ) | ( SHL ) | ( SHR ) | ( ROL ) | ( ROR ) | ( PLUS ) | ( MINUS ) | ( DIV ) | ( MUL ) | ( EQUAL ) | ( NOTEQUAL ) | ( LESS ) | ( LESSEQUAL ) | ( GREATER ) | ( GREATEREQUAL ) | ( POWER ) ;