Grammar vcParser ANTLR-generated HTML file from /usr/src/packages/BUILD/v2/libAhirV2/grammar/vc.g
Terence Parr, MageLang Institute
|
Definition of parser vcParser, which is a subclass of LLkParser. vc_System : ( ( vc_Module ) | ( vc_MemorySpace ) | ( vc_Pipe ) | ( vc_Wire_Declaration ) | ( vc_SysAttributeSpec ) | ( vc_SysBufferingSpec ) )* ; vc_Module : ( ( FOREIGN ) | ( PIPELINE ( DEPTH UINTEGER | ) ( BUFFERING UINTEGER | ) ( FULLRATE | ) ( DETERMINISTIC | ) ) | ) ( ( OPERATOR ) | ( VOLATILE ) | ) MODULE vc_Label LBRACE ( vc_Inargs | ) ( vc_Outargs | ) ( vc_MemorySpace )* ( vc_Pipe )* ( vc_Controlpath | ) ( vc_Datapath | ) ( vc_Link )* ( vc_AttributeSpec )* RBRACE ; vc_MemorySpace : MEMORYSPACE ( UNORDERED | ) vc_Label LBRACE vc_MemorySpaceParams ( vc_MemoryLocation )* ( vc_AttributeSpec )* RBRACE ; vc_Pipe : ( ( LIFO ) | ( NOBLOCK ) | ) ( SHIFTREG | ) PIPE vc_Label UINTEGER ( DEPTH UINTEGER | ) ( IN | OUT | ) ( SIGNAL | ) ( P2P | ) ( FULLRATE | ) ( BYPASS | ) ; vc_Wire_Declaration : ( ( CONSTANT ) | ( INTERMEDIATE ) | ) WIRE vc_Object_Declaration_Base ; vc_SysAttributeSpec : ATTRIBUTE ( ( MEMORYSPACE ( vc_Identifier DIV_OP | ) vc_Identifier ) | ( MODULE vc_Identifier ) ) SIMPLE_IDENTIFIER IMPLIES QUOTED_STRING ; vc_SysBufferingSpec : BUFFERING SIMPLE_IDENTIFER ( IN | ( OUT ) ) SIMPLE_IDENTIFIER SIMPLE_IDENTIFIER UINTEGER ; vc_Label : LBRACKET ( SIMPLE_IDENTIFIER ) RBRACKET ; vc_MemorySpaceParams : CAPACITY UINTEGER DATAWIDTH UINTEGER ADDRWIDTH UINTEGER MAXACCESSWIDTH UINTEGER ; vc_MemoryLocation : OBJECT vc_Label COLON vc_Type ; vc_AttributeSpec : ATTRIBUTE SIMPLE_IDENTIFIER IMPLIES QUOTED_STRING ; vc_Type : ( ( vc_ScalarType ) | ( vc_ArrayType ) | ( vc_RecordType ) ) ; vc_Inargs : IN ( vc_Interface_Object_Declaration )* ; vc_Outargs : OUT ( vc_Interface_Object_Declaration )* ; vc_Controlpath : CONTROLPATH LBRACE ( ( vc_CPPipelinedForkBlock ( vc_CPPlace )* ( vc_CPBind )* ) | ( ( vc_CPRegion )+ ( vc_AttributeSpec )* ) | ) RBRACE ; vc_Datapath : DATAPATH LBRACE ( vc_Wire_Declaration | vc_Guarded_Operator_Instantiation | vc_Branch_Instantiation | vc_Phi_Instantiation | vc_PhiPipelined_Instantiation | vc_AttributeSpec | vc_ModuleBufferingSpec | vc_ModuleDelaySpec | vc_PipelineSpec )* RBRACE ; vc_Link : SIMPLE_IDENTIFIER EQUIVALENT LPAREN ( vc_Hierarchical_CP_Ref )+ RPAREN LPAREN ( ( vc_Hierarchical_CP_Ref ) | ( OPEN ) )+ RPAREN ; vc_Hierarchical_CP_Ref : ( vc_Identifier DIV_OP )* ( ( vc_Identifier ) | ( ENTRY ) | ( EXIT ) ) ; vc_Identifier : SIMPLE_IDENTIFIER ; vc_CPPipelinedForkBlock : PIPELINEDFORKBLOCK vc_Label LBRACE ( ( vc_CPRegion ) | ( vc_CPFork ) | ( vc_CPJoin ) | ( vc_CPMarkedJoin ) | ( vc_CPTransition ) | ( vc_AttributeSpec ) )* RBRACE ( LPAREN ( vc_Identifier )* RPAREN ) ( LPAREN ( vc_Identifier )* RPAREN ) ; vc_CPPlace : PLACE vc_Label ( LEFT_OPEN | ) ; vc_CPBind : BIND SIMPLE_IDENTIFIER ( ( IMPLIES ) | ( ULE_OP ) ) SIMPLE_IDENTIFIER COLON SIMPLE_IDENTIFIER ; vc_CPRegion : vc_CPSeriesBlock | vc_CPParallelBlock | vc_CPBranchBlock | vc_CPForkBlock ; vc_CPElement : ( vc_CPPlace ) | ( vc_CPTransition ) ; vc_CPTransition : TRANSITION vc_Label ( ( DEAD ) | ( TIED_HIGH ) | ( LEFT_OPEN ) | ( DELAY ) | ) ; vc_CPAlias : ALIAS vc_Label vc_Label ; vc_CPSeriesBlock : SERIESBLOCK vc_Label LBRACE ( ( vc_CPElement ) | ( vc_CPRegion ) | ( vc_AttributeSpec ) )* RBRACE ; vc_CPParallelBlock : PARALLELBLOCK vc_Label LBRACE ( vc_CPRegion | vc_CPTransition | ( vc_AttributeSpec ) )* RBRACE ; vc_CPBranchBlock : BRANCHBLOCK vc_Label LBRACE ( ( vc_CPRegion ) | ( vc_CPBranch ) | ( vc_CPMerge ) | ( vc_CPSimpleLoopBlock ) | ( vc_CPPlace ) | ( vc_AttributeSpec ) )+ RBRACE ; vc_CPForkBlock : FORKBLOCK vc_Label LBRACE ( ( vc_CPRegion ) | ( vc_CPFork ) | ( vc_CPJoin ) | ( vc_CPTransition ) | ( vc_AttributeSpec ) )* RBRACE ; vc_CPBranch : vc_Identifier BRANCH LPAREN ( EXIT | ) ( vc_Identifier )* RPAREN ; vc_CPMerge : vc_Identifier MERGE LPAREN ( ENTRY | ) ( vc_Identifier )* RPAREN ; vc_CPSimpleLoopBlock : LOOPBLOCK vc_Label DEPTH UINTEGER BUFFERING UINTEGER ( FULLRATE | ) LBRACE ( vc_CPPlace )* vc_CPPipelinedLoopBody ( vc_CPSeriesBlock )+ ( vc_CPMerge )+ ( vc_CPBranch )+ ( vc_CPBind )* vc_CPLoopTerminate RBRACE ; vc_CPPipelinedLoopBody : PIPELINE vc_Label LBRACE ( ( vc_CPRegion ) | ( vc_CPFork ) | ( vc_CPJoin ) | ( vc_CPMarkedJoin ) | ( vc_CPTransition ) | ( vc_CPPhiSequencer ) | ( vc_CPTransitionMerge ) | ( vc_CPAlias ) | ( vc_AttributeSpec ) )* RBRACE ( LPAREN ( vc_Identifier )* RPAREN ) ( LPAREN ( vc_Identifier )* RPAREN ) ; vc_CPLoopTerminate : TERMINATE LPAREN vc_Identifier vc_Identifier vc_Identifier RPAREN LPAREN vc_Identifier vc_Identifier RPAREN ; vc_CPPhiSequencer : PHISEQUENCER vc_Label COLON ( vc_Identifier vc_Identifier vc_Identifier vc_Identifier vc_Identifier )+ COLON ( vc_Identifier vc_Identifier vc_Identifier vc_Identifier ) COLON ( vc_Identifier )+ COLON vc_Identifier ; vc_CPTransitionMerge : TRANSITIONMERGE vc_Label LPAREN ( vc_Identifier )+ RPAREN LPAREN vc_Identifier RPAREN ; vc_CPFork : ( ( vc_Identifier ) | ( ENTRY ) | ( N_ULL ) ) FORK LPAREN ( EXIT | ) ( N_ULL | ) ( vc_Identifier )* RPAREN ; vc_CPJoin : ( ( vc_Identifier ) | ( EXIT ) | ( ENTRY ) | ( N_ULL ) ) JOIN LPAREN ( ENTRY | ) ( vc_Identifier )* RPAREN ; vc_CPMarkedJoin : ( ( vc_Identifier ) | ( ENTRY ) | ( N_ULL ) ) MARKEDJOIN LPAREN ( ENTRY UINTEGER | ) ( vc_Identifier UINTEGER )* RPAREN ; vc_Guarded_Operator_Instantiation : ( vc_Operator_Instantiation | vc_Call_Instantiation | vc_IOPort_Instantiation | vc_LoadStore_Instantiation ) ( GUARD LPAREN ( NOT_OP | ) vc_Wire_Connection RPAREN | ) ( FLOWTHROUGH | ) ( FULLRATE | ) ; vc_Branch_Instantiation : BRANCH_OP vc_Label LPAREN ( vc_Identifier )+ RPAREN ( FLOWTHROUGH | ) ; vc_Phi_Instantiation : PHI vc_Label LPAREN ( vc_Identifier )+ RPAREN LPAREN vc_Identifier RPAREN ( FULLRATE | ) ; vc_PhiPipelined_Instantiation : HASH PHI vc_Label LPAREN ( vc_Identifier )+ RPAREN LPAREN vc_Identifier RPAREN ( FULLRATE | ) ; vc_ModuleBufferingSpec : BUFFERING ( IN | ( OUT ) ) SIMPLE_IDENTIFIER SIMPLE_IDENTIFIER UINTEGER ; vc_ModuleDelaySpec : DELAY SIMPLE_IDENTIFIER UINTEGER ; vc_PipelineSpec : PIPELINE SIMPLE_IDENTIFIER LPAREN ( SIMPLE_IDENTIFIER )+ RPAREN ; vc_Wire_Connection : ( WAR | ) vc_Identifier ; vc_Operator_Instantiation : ( vc_BinaryOperator_Instantiation | vc_UnaryOperator_Instantiation | vc_Select_Instantiation | vc_Slice_Instantiation | vc_Register_Instantiation | vc_Equivalence_Instantiation | vc_Bitmap_Instantiation | vc_InterlockBuffer_Instantiation ) ; vc_Call_Instantiation : CALL ( INLINE | ) vc_Label MODULE vc_Identifier LPAREN ( vc_Wire_Connection )* RPAREN LPAREN ( vc_Identifier )* RPAREN ; vc_IOPort_Instantiation : IOPORT ( ( IN ) | OUT ) vc_Label LPAREN vc_Identifier RPAREN LPAREN vc_Identifier RPAREN ; vc_LoadStore_Instantiation : vc_Load_Instantiation | vc_Store_Instantiation ; vc_BinaryOperator_Instantiation : ( ( PLUS_OP ) | ( MINUS_OP ) | ( MUL_OP ) | ( DIV_OP ) | ( SHL_OP ) | ( SHR_OP ) | ( ROL_OP ) | ( ROR_OP ) | ( UGT_OP ) | ( UGE_OP ) | ( EQ_OP ) | ( ULT_OP ) | ( ULE_OP ) | ( NEQ_OP ) | ( BITSEL_OP ) | ( CONCAT_OP ) | ( UNORDERED_OP ) | ( OR_OP ) | ( AND_OP ) | ( XOR_OP ) | ( NOR_OP ) | ( NAND_OP ) | ( XNOR_OP ) | ( SHRA_OP ) | ( SGT_OP ) | ( SGE_OP ) | ( SLT_OP ) | ( SLE_OP ) ) vc_Label LPAREN vc_Wire_Connection vc_Wire_Connection RPAREN LPAREN vc_Identifier RPAREN ; vc_UnaryOperator_Instantiation : ( ( NOT_OP ) | ( StoS_ASSIGN_OP ) | ( StoU_ASSIGN_OP ) | ( UtoS_ASSIGN_OP ) | ( FtoS_ASSIGN_OP ) | ( FtoU_ASSIGN_OP ) | ( StoF_ASSIGN_OP ) | ( UtoF_ASSIGN_OP ) | ( FtoF_ASSIGN_OP ) | ( DECODE_OP ) | ( ENCODE_OP ) | ( P_ENCODE_OP ) | ( BITREDUCE_OR_OP ) | ( BITREDUCE_AND_OP ) | ( BITREDUCE_XOR_OP ) | ) vc_Label LPAREN vc_Wire_Connection RPAREN LPAREN vc_Identifier RPAREN ; vc_Select_Instantiation : SELECT_OP vc_Label LPAREN vc_Wire_Connection vc_Wire_Connection vc_Wire_Connection RPAREN LPAREN vc_Identifier RPAREN ; vc_Slice_Instantiation : SLICE_OP vc_Label LPAREN vc_Wire_Connection UINTEGER UINTEGER RPAREN LPAREN vc_Identifier RPAREN ; vc_Register_Instantiation : ASSIGN_OP vc_Label LPAREN vc_Wire_Connection RPAREN LPAREN vc_Identifier RPAREN ; vc_Equivalence_Instantiation : EQUIVALENCE_OP vc_Label LPAREN ( vc_Wire_Connection )+ RPAREN LPAREN ( vc_Identifier )+ RPAREN ; vc_Bitmap_Instantiation : PERMUTE_OP vc_Label LPAREN vc_Wire_Connection ( UINTEGER UINTEGER )+ RPAREN LPAREN vc_Identifier RPAREN ; vc_InterlockBuffer_Instantiation : HASH ASSIGN_OP vc_Label LPAREN vc_Wire_Connection RPAREN LPAREN vc_Identifier RPAREN ; vc_Load_Instantiation : LOAD vc_Label FROM ( vc_Identifier DIV_OP | ) vc_Identifier LPAREN vc_Identifier RPAREN LPAREN vc_Identifier RPAREN ; vc_Store_Instantiation : STORE vc_Label TO ( vc_Identifier DIV_OP | ) vc_Identifier LPAREN vc_Identifier vc_Identifier RPAREN ; vc_Interface_Object_Declaration : SIMPLE_IDENTIFIER COLON vc_Type ( ASSIGN_OP vc_Value | ) ; vc_Value : ( ( ( BINARYSTRING ) | ( HEXSTRING ) ) ) | ( LPAREN vc_Value ( COMMA vc_Value )* RPAREN ) ; vc_Object_Declaration_Base : vc_Label COLON vc_Type ( ASSIGN_OP vc_Value | ) ; vc_ScalarType : ( vc_IntType ) | ( vc_FloatType ) | ( vc_PointerType ) ; vc_ArrayType : ARRAY LBRACKET UINTEGER RBRACKET OF vc_Type ; vc_RecordType : RECORD ( ULT_OP ( vc_Type ) UGT_OP )+ ; vc_IntType : INT ULT_OP UINTEGER UGT_OP ; vc_FloatType : FLOAT ULT_OP UINTEGER COMMA UINTEGER UGT_OP ; vc_PointerType : POINTER ULT_OP ( SIMPLE_IDENTIFIER DIV_OP | ) SIMPLE_IDENTIFIER UGT_OP ;