-- Automatically generated SCAYACC input
-- from AdaGOOP (by Martin C. Carlisle)
-- Do not modify.

{
with msil_Model;
use msil_Model;

package msil_tokens is
}

%token HEXBYTE_token
%token FLOAT64_LITERAL_token
%token INT64_LITERAL_token
%token SQSTRING_token
%token QSTRING_token
%token DOTTED_NAME_token
%token IDENTIFIER_token
%token ELLIPSES_token
%token DOT_token
%token SLASH_token
%token PLUS_token
%token STAR_token
%token ADDROF_token
%token DOUBLECOLON_token
%token COLON_token
%token RBRACE_token
%token LBRACE_token
%token RPAREN_token
%token LPAREN_token
%token RBRACKET_token
%token LBRACKET_token
%token EQUAL_token
%token COMMA_token
%token REFANYTYPE_token
%token SIZEOF_token
%token RETHROW_token
%token INITBLK_token
%token CPBLK_token
%token INITOBJ_token
%token TAIL_token
%token VOLATILE_token
%token UNALIGNED_token
%token ENDFILTER_token
%token LOCALLOC_token
%token STLOC_token
%token LDLOCA_token
%token LDLOC_token
%token STARG_token
%token LDARGA_token
%token LDARG_token
%token LDVIRTFTN_token
%token LDFTN_token
%token CLTUN_token
%token CLT_token
%token CGTUN_token
%token CGT_token
%token CEQ_token
%token ARGLIST_token
%token CONVU_token
%token STINDI_token
%token LEAVES_token
%token LEAVE_token
%token ENDFINALLY_token
%token SUBOVFUN_token
%token SUBOVF_token
%token MULOVFUN_token
%token MULOVF_token
%token ADDOVFUN_token
%token ADDOVF_token
%token CONVOVFU_token
%token CONVOVFI_token
%token CONVI_token
%token CONVU1_token
%token CONVU2_token
%token LDTOKEN_token
%token MKREFANY_token
%token CKFINITE_token
%token REFANYVAL_token
%token CONVOVFU8_token
%token CONVOVFU4_token
%token CONVOVFU2_token
%token CONVOVFU1_token
%token CONVOVFI8_token
%token CONVOVFI4_token
%token CONVOVFI2_token
%token CONVOVFI1_token
%token STELEMREF_token
%token STELEMR8_token
%token STELEMR4_token
%token STELEMI8_token
%token STELEMI4_token
%token STELEMI2_token
%token STELEMI1_token
%token STELEMI_token
%token LDELEMREF_token
%token LDELEMR8_token
%token LDELEMR4_token
%token LDELEMI_token
%token LDELEMI8_token
%token LDELEMU4_token
%token LDELEMI4_token
%token LDELEMU2_token
%token LDELEMI2_token
%token LDELEMU1_token
%token LDELEMI1_token
%token LDELEMA_token
%token LDLEN_token
%token NEWARR_token
%token BOX_token
%token CONVOVFUUN_token
%token CONVOVFIUN_token
%token CONVOVFU8UN_token
%token CONVOVFU4UN_token
%token CONVOVFU2UN_token
%token CONVOVFU1UN_token
%token CONVOVFI8UN_token
%token CONVOVFI4UN_token
%token CONVOVFI2UN_token
%token CONVOVFI1UN_token
%token STOBJ_token
%token STSFLD_token
%token LDSFLDA_token
%token LDSFLD_token
%token STFLD_token
%token LDFLDA_token
%token LDFLD_token
%token THROW_token
%token UNBOX_token
%token CONVRUN_token
%token ISINST_token
%token CASTCLASS_token
%token NEWOBJ_token
%token LDSTR_token
%token LDOBJ_token
%token CPOBJ_token
%token CALLVIRT_token
%token CONVU8_token
%token CONVU4_token
%token CONVR8_token
%token CONVR4_token
%token CONVI8_token
%token CONVI4_token
%token CONVI2_token
%token CONVI1_token
%token NOT_token
%token NEG_token
%token SHRUN_token
%token SHR_token
%token SHL_token
%token XOR_token
%token OR_token
%token AND_token
%token REMUN_token
%token REM_token
%token DIVUN_token
%token DIV_token
%token MUL_token
%token SUB_token
%token ADD_token
%token STINDR8_token
%token STINDR4_token
%token STINDI8_token
%token STINDI4_token
%token STINDI2_token
%token STINDI1_token
%token STINDREF_token
%token LDINDREF_token
%token LDINDR8_token
%token LDINDR4_token
%token LDINDI_token
%token LDINDI8_token
%token LDINDU4_token
%token LDINDI4_token
%token LDINDU2_token
%token LDINDI2_token
%token LDINDU1_token
%token LDINDI1_token
%token SWITCH_token
%token BLTUN_token
%token BLEUN_token
%token BGTUN_token
%token BGEUN_token
%token BNEUN_token
%token BLT_token
%token BLE_token
%token BGT_token
%token BGE_token
%token BEQ_token
%token BRTRUE_token
%token BRFALSE_token
%token BR_token
%token BLTUNS_token
%token BLEUNS_token
%token BGTUNS_token
%token BGEUNS_token
%token BNEUNS_token
%token BLTS_token
%token BLES_token
%token BGTS_token
%token BGES_token
%token BEQS_token
%token BRTRUES_token
%token BRFALSES_token
%token BRS_token
%token RET_token
%token CALLI_token
%token CALL_token
%token JMP_token
%token POP_token
%token DUP_token
%token LDCR8_token
%token LDCR4_token
%token LDCI8_token
%token LDCI4_token
%token LDCI4S_token
%token LDCI48_token
%token LDCI47_token
%token LDCI46_token
%token LDCI45_token
%token LDCI44_token
%token LDCI43_token
%token LDCI42_token
%token LDCI41_token
%token LDCI40_token
%token LDCI4M1_token
%token LDNULL_token
%token STLOCS_token
%token LDLOCAS_token
%token LDLOCS_token
%token STARGS_token
%token LDARGAS_token
%token LDARGS_token
%token STLOC3_token
%token STLOC2_token
%token STLOC1_token
%token STLOC0_token
%token LDLOC3_token
%token LDLOC2_token
%token LDLOC1_token
%token LDLOC0_token
%token LDARG3_token
%token LDARG2_token
%token LDARG1_token
%token LDARG0_token
%token BREAK_token
%token NOP_token
%token WITH_token
%token WINAPI_token
%token VOID_token
%token VIRTUAL_token
%token VECTOR_token
%token VARIANT_token
%token VARARG_token
%token VALUETYPE_token
%token USERDEFINED_token
%token UNMANAGEDEXP_token
%token UNMANAGED_token
%token UNICODE_token
%token VALUE_token
%token UNSIGNED_token
%token TYPEDREF_token
%token TRUE_token
%token TO_token
%token TLS_token
%token THISCALL_token
%token TBSTR_token
%token SYSSTRING_token
%token SYSCHAR_token
%token SYNCHRONIZED_token
%token STRUCT_token
%token STRING_token
%token STREAMED_OBJECT_token
%token STREAM_token
%token STORED_OBJECT_token
%token STORAGE_token
%token STDCALL_token
%token STATIC_token
%token SPECIALNAME_token
%token SERIALIZABLE_token
%token SEQUENTIAL_token
%token SEALED_token
%token SAFEARRAY_token
%token RUNTIME_token
%token RTSPECIALNAME_token
%token REQUEST_token
%token REQSECOBJ_token
%token REQREFUSE_token
%token REQOPT_token
%token REQMIN_token
%token RECORD_token
%token PUBLIC_token
%token PRIVATESCOPE_token
%token PRIVATE_token
%token PRESERVESIG_token
%token PREJITGRANT_token
%token PREJITDENY_token
%token PINVOKEIMPL_token
%token PINNED_token
%token PERMITONLY_token
%token OUT_token
%token OPTIL_token
%token OPT_token
%token OBJECTREF_token
%token OBJECT_token
%token NULLREF_token
%token NULL_token
%token NOTSERIALIZED_token
%token NOPROCESS_token
%token NONCASINHERITANCE_token
%token NONCASLINKDEMAND_token
%token NONCASDEMAND_token
%token NOMETADATA_token
%token NOMANGLE_token
%token NOMACHINE_token
%token NOINLINING_token
%token NOAPPDOMAIN_token
%token NEWSLOT_token
%token NESTED_token
%token NATIVE_token
%token METHOD_token
%token MODOPT_token
%token MODREQ_token
%token MARSHAL_token
%token MANAGED_token
%token LPWSTR_token
%token LPTSTR_token
%token LPSTRUCT_token
%token LPSTR_token
%token LITERAL_token
%token LINKCHECK_token
%token LASTERR_token
%token IUNKNOWN_token
%token INTERNALCALL_token
%token INTERFACE_token
%token INT64_token
%token INT32_token
%token INT16_token
%token INT8_token
%token INT_token
%token INSTANCE_token
%token INITONLY_token
%token INIT_token
%token INHERITCHECK_token
%token IN_token
%token IMPORT_token
%token IMPLEMENTS_token
%token IDISPATCH_token
%token HRESULT_token
%token HIDEBYSIG_token
%token HANDLER_token
%token FROMUNMANAGED_token
%token FORWARDREF_token
%token FLOAT64_token
%token FLOAT32_token
%token FIXED_token
%token FINALLY_token
%token FINAL_token
%token FILTER_token
%token FILETIME_token
%token FIELD_token
%token FAULT_token
%token FASTCALL_token
%token FAMORASSEM_token
%token FAMILY_token
%token FAMANDASSEM_token
%token FALSE_token
%token EXTERN_token
%token EXTENDS_token
%token EXPLICIT_token
%token ERROR_token
%token ENUM_token
%token DENY_token
%token DEMAND_token
%token DEFAULT_token
%token DECIMAL_token
%token DATE_token
%token CURRENCY_token
%token CLSID_token
%token CIL_token
%token CHAR_token
%token CF_token
%token CDECL_token
%token CATCH_token
%token CARRAY_token
%token CALLMOSTDERIVED_token
%token BYVALSTR_token
%token BYTEARRAY_token
%token BSTR_token
%token BOOL_token
%token BLOB_OBJECT_token
%token BLOB_token
%token BEFOREFIELDINIT_token
%token AUTOCHAR_token
%token AUTO_token
%token AT_token
%token ASSERT_token
%token ASSEMBLY_token
%token AS_token
%token ARRAY_token
%token ANY_token
%token ANSI_token
%token ALIGNMENT_token
%token ALGORITHM_token
%token ABSTRACT_token
%token ZEROINIT_token
%token VTFIXUP_token
%token VTENTRY_token
%token VER_token
%token TRY_token
%token SUBSYSTEM_token
%token SIZE_token
%token SET_token
%token REMOVEON_token
%token PUBLICKEYTOKEN_token
%token PUBLICKEY_token
%token PROPERTY_token
%token PERMISSIONSET_token
%token PERMISSION_token
%token PARAM_token
%token PACK_token
%token OVERRIDE_token
%token OTHER_token
%token NAMESPACE_token
%token MRESOURCE_token
%token MODULE_token
%token MAXSTACK_token
%token LOCALS_token
%token LOCALE_token
%token LANGUAGE_token
%token LINE_token
%token IMAGEBASE_token
%token HASH_token
%token DOTGET_token
%token FIRE_token
%token FILE_token
%token FIELD_token
%token EXPORT_token
%token EVENT_token
%token ENTRYPOINT_token
%token EMITBYTE_token
%token DATA_token
%token CUSTOM_token
%token CTOR_token
%token CORFLAGS_token
%token CLASS_token
%token CCTOR_token
%token DOTASSEMBLY_token
%token ADDON_token

%start adagoop_first
{
subtype YYSTYPE is msil_Model.Parseable_Ptr;
}

%%

HEXBYTE_nonterminal : HEXBYTE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,HEXBYTE_token); } ;
FLOAT64_LITERAL_nonterminal : FLOAT64_LITERAL_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,FLOAT64_LITERAL_token); } ;
INT64_LITERAL_nonterminal : INT64_LITERAL_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,INT64_LITERAL_token); } ;
SQSTRING_nonterminal : SQSTRING_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,SQSTRING_token); } ;
QSTRING_nonterminal : QSTRING_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,QSTRING_token); } ;
DOTTED_NAME_nonterminal : DOTTED_NAME_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,DOTTED_NAME_token); } ;
IDENTIFIER_nonterminal : IDENTIFIER_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,IDENTIFIER_token); } ;
ELLIPSES_nonterminal : ELLIPSES_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,ELLIPSES_token); } ;
DOT_nonterminal : DOT_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,DOT_token); } ;
SLASH_nonterminal : SLASH_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,SLASH_token); } ;
PLUS_nonterminal : PLUS_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,PLUS_token); } ;
STAR_nonterminal : STAR_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,STAR_token); } ;
ADDROF_nonterminal : ADDROF_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,ADDROF_token); } ;
DOUBLECOLON_nonterminal : DOUBLECOLON_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,DOUBLECOLON_token); } ;
COLON_nonterminal : COLON_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,COLON_token); } ;
RBRACE_nonterminal : RBRACE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,RBRACE_token); } ;
LBRACE_nonterminal : LBRACE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LBRACE_token); } ;
RPAREN_nonterminal : RPAREN_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,RPAREN_token); } ;
LPAREN_nonterminal : LPAREN_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LPAREN_token); } ;
RBRACKET_nonterminal : RBRACKET_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,RBRACKET_token); } ;
LBRACKET_nonterminal : LBRACKET_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LBRACKET_token); } ;
EQUAL_nonterminal : EQUAL_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,EQUAL_token); } ;
COMMA_nonterminal : COMMA_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,COMMA_token); } ;
REFANYTYPE_nonterminal : REFANYTYPE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,REFANYTYPE_token); } ;
SIZEOF_nonterminal : SIZEOF_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,SIZEOF_token); } ;
RETHROW_nonterminal : RETHROW_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,RETHROW_token); } ;
INITBLK_nonterminal : INITBLK_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,INITBLK_token); } ;
CPBLK_nonterminal : CPBLK_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CPBLK_token); } ;
INITOBJ_nonterminal : INITOBJ_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,INITOBJ_token); } ;
TAIL_nonterminal : TAIL_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,TAIL_token); } ;
VOLATILE_nonterminal : VOLATILE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,VOLATILE_token); } ;
UNALIGNED_nonterminal : UNALIGNED_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,UNALIGNED_token); } ;
ENDFILTER_nonterminal : ENDFILTER_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,ENDFILTER_token); } ;
LOCALLOC_nonterminal : LOCALLOC_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LOCALLOC_token); } ;
STLOC_nonterminal : STLOC_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,STLOC_token); } ;
LDLOCA_nonterminal : LDLOCA_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDLOCA_token); } ;
LDLOC_nonterminal : LDLOC_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDLOC_token); } ;
STARG_nonterminal : STARG_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,STARG_token); } ;
LDARGA_nonterminal : LDARGA_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDARGA_token); } ;
LDARG_nonterminal : LDARG_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDARG_token); } ;
LDVIRTFTN_nonterminal : LDVIRTFTN_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDVIRTFTN_token); } ;
LDFTN_nonterminal : LDFTN_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDFTN_token); } ;
CLTUN_nonterminal : CLTUN_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CLTUN_token); } ;
CLT_nonterminal : CLT_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CLT_token); } ;
CGTUN_nonterminal : CGTUN_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CGTUN_token); } ;
CGT_nonterminal : CGT_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CGT_token); } ;
CEQ_nonterminal : CEQ_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CEQ_token); } ;
ARGLIST_nonterminal : ARGLIST_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,ARGLIST_token); } ;
CONVU_nonterminal : CONVU_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CONVU_token); } ;
STINDI_nonterminal : STINDI_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,STINDI_token); } ;
LEAVES_nonterminal : LEAVES_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LEAVES_token); } ;
LEAVE_nonterminal : LEAVE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LEAVE_token); } ;
ENDFINALLY_nonterminal : ENDFINALLY_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,ENDFINALLY_token); } ;
SUBOVFUN_nonterminal : SUBOVFUN_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,SUBOVFUN_token); } ;
SUBOVF_nonterminal : SUBOVF_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,SUBOVF_token); } ;
MULOVFUN_nonterminal : MULOVFUN_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,MULOVFUN_token); } ;
MULOVF_nonterminal : MULOVF_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,MULOVF_token); } ;
ADDOVFUN_nonterminal : ADDOVFUN_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,ADDOVFUN_token); } ;
ADDOVF_nonterminal : ADDOVF_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,ADDOVF_token); } ;
CONVOVFU_nonterminal : CONVOVFU_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CONVOVFU_token); } ;
CONVOVFI_nonterminal : CONVOVFI_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CONVOVFI_token); } ;
CONVI_nonterminal : CONVI_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CONVI_token); } ;
CONVU1_nonterminal : CONVU1_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CONVU1_token); } ;
CONVU2_nonterminal : CONVU2_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CONVU2_token); } ;
LDTOKEN_nonterminal : LDTOKEN_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDTOKEN_token); } ;
MKREFANY_nonterminal : MKREFANY_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,MKREFANY_token); } ;
CKFINITE_nonterminal : CKFINITE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CKFINITE_token); } ;
REFANYVAL_nonterminal : REFANYVAL_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,REFANYVAL_token); } ;
CONVOVFU8_nonterminal : CONVOVFU8_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CONVOVFU8_token); } ;
CONVOVFU4_nonterminal : CONVOVFU4_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CONVOVFU4_token); } ;
CONVOVFU2_nonterminal : CONVOVFU2_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CONVOVFU2_token); } ;
CONVOVFU1_nonterminal : CONVOVFU1_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CONVOVFU1_token); } ;
CONVOVFI8_nonterminal : CONVOVFI8_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CONVOVFI8_token); } ;
CONVOVFI4_nonterminal : CONVOVFI4_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CONVOVFI4_token); } ;
CONVOVFI2_nonterminal : CONVOVFI2_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CONVOVFI2_token); } ;
CONVOVFI1_nonterminal : CONVOVFI1_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CONVOVFI1_token); } ;
STELEMREF_nonterminal : STELEMREF_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,STELEMREF_token); } ;
STELEMR8_nonterminal : STELEMR8_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,STELEMR8_token); } ;
STELEMR4_nonterminal : STELEMR4_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,STELEMR4_token); } ;
STELEMI8_nonterminal : STELEMI8_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,STELEMI8_token); } ;
STELEMI4_nonterminal : STELEMI4_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,STELEMI4_token); } ;
STELEMI2_nonterminal : STELEMI2_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,STELEMI2_token); } ;
STELEMI1_nonterminal : STELEMI1_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,STELEMI1_token); } ;
STELEMI_nonterminal : STELEMI_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,STELEMI_token); } ;
LDELEMREF_nonterminal : LDELEMREF_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDELEMREF_token); } ;
LDELEMR8_nonterminal : LDELEMR8_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDELEMR8_token); } ;
LDELEMR4_nonterminal : LDELEMR4_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDELEMR4_token); } ;
LDELEMI_nonterminal : LDELEMI_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDELEMI_token); } ;
LDELEMI8_nonterminal : LDELEMI8_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDELEMI8_token); } ;
LDELEMU4_nonterminal : LDELEMU4_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDELEMU4_token); } ;
LDELEMI4_nonterminal : LDELEMI4_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDELEMI4_token); } ;
LDELEMU2_nonterminal : LDELEMU2_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDELEMU2_token); } ;
LDELEMI2_nonterminal : LDELEMI2_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDELEMI2_token); } ;
LDELEMU1_nonterminal : LDELEMU1_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDELEMU1_token); } ;
LDELEMI1_nonterminal : LDELEMI1_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDELEMI1_token); } ;
LDELEMA_nonterminal : LDELEMA_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDELEMA_token); } ;
LDLEN_nonterminal : LDLEN_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDLEN_token); } ;
NEWARR_nonterminal : NEWARR_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,NEWARR_token); } ;
BOX_nonterminal : BOX_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,BOX_token); } ;
CONVOVFUUN_nonterminal : CONVOVFUUN_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CONVOVFUUN_token); } ;
CONVOVFIUN_nonterminal : CONVOVFIUN_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CONVOVFIUN_token); } ;
CONVOVFU8UN_nonterminal : CONVOVFU8UN_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CONVOVFU8UN_token); } ;
CONVOVFU4UN_nonterminal : CONVOVFU4UN_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CONVOVFU4UN_token); } ;
CONVOVFU2UN_nonterminal : CONVOVFU2UN_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CONVOVFU2UN_token); } ;
CONVOVFU1UN_nonterminal : CONVOVFU1UN_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CONVOVFU1UN_token); } ;
CONVOVFI8UN_nonterminal : CONVOVFI8UN_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CONVOVFI8UN_token); } ;
CONVOVFI4UN_nonterminal : CONVOVFI4UN_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CONVOVFI4UN_token); } ;
CONVOVFI2UN_nonterminal : CONVOVFI2UN_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CONVOVFI2UN_token); } ;
CONVOVFI1UN_nonterminal : CONVOVFI1UN_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CONVOVFI1UN_token); } ;
STOBJ_nonterminal : STOBJ_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,STOBJ_token); } ;
STSFLD_nonterminal : STSFLD_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,STSFLD_token); } ;
LDSFLDA_nonterminal : LDSFLDA_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDSFLDA_token); } ;
LDSFLD_nonterminal : LDSFLD_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDSFLD_token); } ;
STFLD_nonterminal : STFLD_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,STFLD_token); } ;
LDFLDA_nonterminal : LDFLDA_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDFLDA_token); } ;
LDFLD_nonterminal : LDFLD_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDFLD_token); } ;
THROW_nonterminal : THROW_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,THROW_token); } ;
UNBOX_nonterminal : UNBOX_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,UNBOX_token); } ;
CONVRUN_nonterminal : CONVRUN_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CONVRUN_token); } ;
ISINST_nonterminal : ISINST_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,ISINST_token); } ;
CASTCLASS_nonterminal : CASTCLASS_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CASTCLASS_token); } ;
NEWOBJ_nonterminal : NEWOBJ_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,NEWOBJ_token); } ;
LDSTR_nonterminal : LDSTR_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDSTR_token); } ;
LDOBJ_nonterminal : LDOBJ_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDOBJ_token); } ;
CPOBJ_nonterminal : CPOBJ_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CPOBJ_token); } ;
CALLVIRT_nonterminal : CALLVIRT_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CALLVIRT_token); } ;
CONVU8_nonterminal : CONVU8_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CONVU8_token); } ;
CONVU4_nonterminal : CONVU4_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CONVU4_token); } ;
CONVR8_nonterminal : CONVR8_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CONVR8_token); } ;
CONVR4_nonterminal : CONVR4_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CONVR4_token); } ;
CONVI8_nonterminal : CONVI8_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CONVI8_token); } ;
CONVI4_nonterminal : CONVI4_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CONVI4_token); } ;
CONVI2_nonterminal : CONVI2_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CONVI2_token); } ;
CONVI1_nonterminal : CONVI1_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CONVI1_token); } ;
NOT_nonterminal : NOT_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,NOT_token); } ;
NEG_nonterminal : NEG_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,NEG_token); } ;
SHRUN_nonterminal : SHRUN_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,SHRUN_token); } ;
SHR_nonterminal : SHR_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,SHR_token); } ;
SHL_nonterminal : SHL_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,SHL_token); } ;
XOR_nonterminal : XOR_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,XOR_token); } ;
OR_nonterminal : OR_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,OR_token); } ;
AND_nonterminal : AND_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,AND_token); } ;
REMUN_nonterminal : REMUN_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,REMUN_token); } ;
REM_nonterminal : REM_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,REM_token); } ;
DIVUN_nonterminal : DIVUN_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,DIVUN_token); } ;
DIV_nonterminal : DIV_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,DIV_token); } ;
MUL_nonterminal : MUL_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,MUL_token); } ;
SUB_nonterminal : SUB_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,SUB_token); } ;
ADD_nonterminal : ADD_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,ADD_token); } ;
STINDR8_nonterminal : STINDR8_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,STINDR8_token); } ;
STINDR4_nonterminal : STINDR4_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,STINDR4_token); } ;
STINDI8_nonterminal : STINDI8_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,STINDI8_token); } ;
STINDI4_nonterminal : STINDI4_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,STINDI4_token); } ;
STINDI2_nonterminal : STINDI2_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,STINDI2_token); } ;
STINDI1_nonterminal : STINDI1_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,STINDI1_token); } ;
STINDREF_nonterminal : STINDREF_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,STINDREF_token); } ;
LDINDREF_nonterminal : LDINDREF_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDINDREF_token); } ;
LDINDR8_nonterminal : LDINDR8_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDINDR8_token); } ;
LDINDR4_nonterminal : LDINDR4_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDINDR4_token); } ;
LDINDI_nonterminal : LDINDI_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDINDI_token); } ;
LDINDI8_nonterminal : LDINDI8_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDINDI8_token); } ;
LDINDU4_nonterminal : LDINDU4_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDINDU4_token); } ;
LDINDI4_nonterminal : LDINDI4_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDINDI4_token); } ;
LDINDU2_nonterminal : LDINDU2_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDINDU2_token); } ;
LDINDI2_nonterminal : LDINDI2_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDINDI2_token); } ;
LDINDU1_nonterminal : LDINDU1_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDINDU1_token); } ;
LDINDI1_nonterminal : LDINDI1_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDINDI1_token); } ;
SWITCH_nonterminal : SWITCH_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,SWITCH_token); } ;
BLTUN_nonterminal : BLTUN_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,BLTUN_token); } ;
BLEUN_nonterminal : BLEUN_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,BLEUN_token); } ;
BGTUN_nonterminal : BGTUN_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,BGTUN_token); } ;
BGEUN_nonterminal : BGEUN_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,BGEUN_token); } ;
BNEUN_nonterminal : BNEUN_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,BNEUN_token); } ;
BLT_nonterminal : BLT_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,BLT_token); } ;
BLE_nonterminal : BLE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,BLE_token); } ;
BGT_nonterminal : BGT_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,BGT_token); } ;
BGE_nonterminal : BGE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,BGE_token); } ;
BEQ_nonterminal : BEQ_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,BEQ_token); } ;
BRTRUE_nonterminal : BRTRUE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,BRTRUE_token); } ;
BRFALSE_nonterminal : BRFALSE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,BRFALSE_token); } ;
BR_nonterminal : BR_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,BR_token); } ;
BLTUNS_nonterminal : BLTUNS_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,BLTUNS_token); } ;
BLEUNS_nonterminal : BLEUNS_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,BLEUNS_token); } ;
BGTUNS_nonterminal : BGTUNS_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,BGTUNS_token); } ;
BGEUNS_nonterminal : BGEUNS_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,BGEUNS_token); } ;
BNEUNS_nonterminal : BNEUNS_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,BNEUNS_token); } ;
BLTS_nonterminal : BLTS_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,BLTS_token); } ;
BLES_nonterminal : BLES_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,BLES_token); } ;
BGTS_nonterminal : BGTS_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,BGTS_token); } ;
BGES_nonterminal : BGES_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,BGES_token); } ;
BEQS_nonterminal : BEQS_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,BEQS_token); } ;
BRTRUES_nonterminal : BRTRUES_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,BRTRUES_token); } ;
BRFALSES_nonterminal : BRFALSES_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,BRFALSES_token); } ;
BRS_nonterminal : BRS_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,BRS_token); } ;
RET_nonterminal : RET_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,RET_token); } ;
CALLI_nonterminal : CALLI_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CALLI_token); } ;
CALL_nonterminal : CALL_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CALL_token); } ;
JMP_nonterminal : JMP_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,JMP_token); } ;
POP_nonterminal : POP_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,POP_token); } ;
DUP_nonterminal : DUP_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,DUP_token); } ;
LDCR8_nonterminal : LDCR8_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDCR8_token); } ;
LDCR4_nonterminal : LDCR4_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDCR4_token); } ;
LDCI8_nonterminal : LDCI8_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDCI8_token); } ;
LDCI4_nonterminal : LDCI4_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDCI4_token); } ;
LDCI4S_nonterminal : LDCI4S_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDCI4S_token); } ;
LDCI48_nonterminal : LDCI48_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDCI48_token); } ;
LDCI47_nonterminal : LDCI47_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDCI47_token); } ;
LDCI46_nonterminal : LDCI46_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDCI46_token); } ;
LDCI45_nonterminal : LDCI45_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDCI45_token); } ;
LDCI44_nonterminal : LDCI44_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDCI44_token); } ;
LDCI43_nonterminal : LDCI43_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDCI43_token); } ;
LDCI42_nonterminal : LDCI42_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDCI42_token); } ;
LDCI41_nonterminal : LDCI41_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDCI41_token); } ;
LDCI40_nonterminal : LDCI40_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDCI40_token); } ;
LDCI4M1_nonterminal : LDCI4M1_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDCI4M1_token); } ;
LDNULL_nonterminal : LDNULL_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDNULL_token); } ;
STLOCS_nonterminal : STLOCS_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,STLOCS_token); } ;
LDLOCAS_nonterminal : LDLOCAS_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDLOCAS_token); } ;
LDLOCS_nonterminal : LDLOCS_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDLOCS_token); } ;
STARGS_nonterminal : STARGS_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,STARGS_token); } ;
LDARGAS_nonterminal : LDARGAS_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDARGAS_token); } ;
LDARGS_nonterminal : LDARGS_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDARGS_token); } ;
STLOC3_nonterminal : STLOC3_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,STLOC3_token); } ;
STLOC2_nonterminal : STLOC2_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,STLOC2_token); } ;
STLOC1_nonterminal : STLOC1_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,STLOC1_token); } ;
STLOC0_nonterminal : STLOC0_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,STLOC0_token); } ;
LDLOC3_nonterminal : LDLOC3_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDLOC3_token); } ;
LDLOC2_nonterminal : LDLOC2_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDLOC2_token); } ;
LDLOC1_nonterminal : LDLOC1_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDLOC1_token); } ;
LDLOC0_nonterminal : LDLOC0_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDLOC0_token); } ;
LDARG3_nonterminal : LDARG3_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDARG3_token); } ;
LDARG2_nonterminal : LDARG2_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDARG2_token); } ;
LDARG1_nonterminal : LDARG1_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDARG1_token); } ;
LDARG0_nonterminal : LDARG0_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LDARG0_token); } ;
BREAK_nonterminal : BREAK_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,BREAK_token); } ;
NOP_nonterminal : NOP_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,NOP_token); } ;
WITH_nonterminal : WITH_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,WITH_token); } ;
WINAPI_nonterminal : WINAPI_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,WINAPI_token); } ;
VOID_nonterminal : VOID_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,VOID_token); } ;
VIRTUAL_nonterminal : VIRTUAL_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,VIRTUAL_token); } ;
VECTOR_nonterminal : VECTOR_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,VECTOR_token); } ;
VARIANT_nonterminal : VARIANT_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,VARIANT_token); } ;
VARARG_nonterminal : VARARG_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,VARARG_token); } ;
VALUETYPE_nonterminal : VALUETYPE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,VALUETYPE_token); } ;
USERDEFINED_nonterminal : USERDEFINED_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,USERDEFINED_token); } ;
UNMANAGEDEXP_nonterminal : UNMANAGEDEXP_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,UNMANAGEDEXP_token); } ;
UNMANAGED_nonterminal : UNMANAGED_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,UNMANAGED_token); } ;
UNICODE_nonterminal : UNICODE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,UNICODE_token); } ;
VALUE_nonterminal : VALUE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,VALUE_token); } ;
UNSIGNED_nonterminal : UNSIGNED_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,UNSIGNED_token); } ;
TYPEDREF_nonterminal : TYPEDREF_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,TYPEDREF_token); } ;
TRUE_nonterminal : TRUE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,TRUE_token); } ;
TO_nonterminal : TO_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,TO_token); } ;
TLS_nonterminal : TLS_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,TLS_token); } ;
THISCALL_nonterminal : THISCALL_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,THISCALL_token); } ;
TBSTR_nonterminal : TBSTR_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,TBSTR_token); } ;
SYSSTRING_nonterminal : SYSSTRING_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,SYSSTRING_token); } ;
SYSCHAR_nonterminal : SYSCHAR_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,SYSCHAR_token); } ;
SYNCHRONIZED_nonterminal : SYNCHRONIZED_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,SYNCHRONIZED_token); } ;
STRUCT_nonterminal : STRUCT_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,STRUCT_token); } ;
STRING_nonterminal : STRING_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,STRING_token); } ;
STREAMED_OBJECT_nonterminal : STREAMED_OBJECT_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,STREAMED_OBJECT_token); } ;
STREAM_nonterminal : STREAM_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,STREAM_token); } ;
STORED_OBJECT_nonterminal : STORED_OBJECT_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,STORED_OBJECT_token); } ;
STORAGE_nonterminal : STORAGE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,STORAGE_token); } ;
STDCALL_nonterminal : STDCALL_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,STDCALL_token); } ;
STATIC_nonterminal : STATIC_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,STATIC_token); } ;
SPECIALNAME_nonterminal : SPECIALNAME_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,SPECIALNAME_token); } ;
SERIALIZABLE_nonterminal : SERIALIZABLE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,SERIALIZABLE_token); } ;
SEQUENTIAL_nonterminal : SEQUENTIAL_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,SEQUENTIAL_token); } ;
SEALED_nonterminal : SEALED_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,SEALED_token); } ;
SAFEARRAY_nonterminal : SAFEARRAY_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,SAFEARRAY_token); } ;
RUNTIME_nonterminal : RUNTIME_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,RUNTIME_token); } ;
RTSPECIALNAME_nonterminal : RTSPECIALNAME_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,RTSPECIALNAME_token); } ;
REQUEST_nonterminal : REQUEST_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,REQUEST_token); } ;
REQSECOBJ_nonterminal : REQSECOBJ_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,REQSECOBJ_token); } ;
REQREFUSE_nonterminal : REQREFUSE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,REQREFUSE_token); } ;
REQOPT_nonterminal : REQOPT_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,REQOPT_token); } ;
REQMIN_nonterminal : REQMIN_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,REQMIN_token); } ;
RECORD_nonterminal : RECORD_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,RECORD_token); } ;
PUBLIC_nonterminal : PUBLIC_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,PUBLIC_token); } ;
PRIVATESCOPE_nonterminal : PRIVATESCOPE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,PRIVATESCOPE_token); } ;
PRIVATE_nonterminal : PRIVATE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,PRIVATE_token); } ;
PRESERVESIG_nonterminal : PRESERVESIG_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,PRESERVESIG_token); } ;
PREJITGRANT_nonterminal : PREJITGRANT_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,PREJITGRANT_token); } ;
PREJITDENY_nonterminal : PREJITDENY_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,PREJITDENY_token); } ;
PINVOKEIMPL_nonterminal : PINVOKEIMPL_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,PINVOKEIMPL_token); } ;
PINNED_nonterminal : PINNED_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,PINNED_token); } ;
PERMITONLY_nonterminal : PERMITONLY_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,PERMITONLY_token); } ;
OUT_nonterminal : OUT_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,OUT_token); } ;
OPTIL_nonterminal : OPTIL_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,OPTIL_token); } ;
OPT_nonterminal : OPT_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,OPT_token); } ;
OBJECTREF_nonterminal : OBJECTREF_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,OBJECTREF_token); } ;
OBJECT_nonterminal : OBJECT_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,OBJECT_token); } ;
NULLREF_nonterminal : NULLREF_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,NULLREF_token); } ;
NULL_nonterminal : NULL_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,NULL_token); } ;
NOTSERIALIZED_nonterminal : NOTSERIALIZED_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,NOTSERIALIZED_token); } ;
NOPROCESS_nonterminal : NOPROCESS_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,NOPROCESS_token); } ;
NONCASINHERITANCE_nonterminal : NONCASINHERITANCE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,NONCASINHERITANCE_token); } ;
NONCASLINKDEMAND_nonterminal : NONCASLINKDEMAND_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,NONCASLINKDEMAND_token); } ;
NONCASDEMAND_nonterminal : NONCASDEMAND_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,NONCASDEMAND_token); } ;
NOMETADATA_nonterminal : NOMETADATA_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,NOMETADATA_token); } ;
NOMANGLE_nonterminal : NOMANGLE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,NOMANGLE_token); } ;
NOMACHINE_nonterminal : NOMACHINE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,NOMACHINE_token); } ;
NOINLINING_nonterminal : NOINLINING_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,NOINLINING_token); } ;
NOAPPDOMAIN_nonterminal : NOAPPDOMAIN_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,NOAPPDOMAIN_token); } ;
NEWSLOT_nonterminal : NEWSLOT_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,NEWSLOT_token); } ;
NESTED_nonterminal : NESTED_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,NESTED_token); } ;
NATIVE_nonterminal : NATIVE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,NATIVE_token); } ;
METHOD_nonterminal : METHOD_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,METHOD_token); } ;
MODOPT_nonterminal : MODOPT_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,MODOPT_token); } ;
MODREQ_nonterminal : MODREQ_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,MODREQ_token); } ;
MARSHAL_nonterminal : MARSHAL_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,MARSHAL_token); } ;
MANAGED_nonterminal : MANAGED_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,MANAGED_token); } ;
LPWSTR_nonterminal : LPWSTR_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LPWSTR_token); } ;
LPTSTR_nonterminal : LPTSTR_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LPTSTR_token); } ;
LPSTRUCT_nonterminal : LPSTRUCT_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LPSTRUCT_token); } ;
LPSTR_nonterminal : LPSTR_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LPSTR_token); } ;
LITERAL_nonterminal : LITERAL_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LITERAL_token); } ;
LINKCHECK_nonterminal : LINKCHECK_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LINKCHECK_token); } ;
LASTERR_nonterminal : LASTERR_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LASTERR_token); } ;
IUNKNOWN_nonterminal : IUNKNOWN_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,IUNKNOWN_token); } ;
INTERNALCALL_nonterminal : INTERNALCALL_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,INTERNALCALL_token); } ;
INTERFACE_nonterminal : INTERFACE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,INTERFACE_token); } ;
INT64_nonterminal : INT64_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,INT64_token); } ;
INT32_nonterminal : INT32_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,INT32_token); } ;
INT16_nonterminal : INT16_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,INT16_token); } ;
INT8_nonterminal : INT8_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,INT8_token); } ;
INT_nonterminal : INT_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,INT_token); } ;
INSTANCE_nonterminal : INSTANCE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,INSTANCE_token); } ;
INITONLY_nonterminal : INITONLY_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,INITONLY_token); } ;
INIT_nonterminal : INIT_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,INIT_token); } ;
INHERITCHECK_nonterminal : INHERITCHECK_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,INHERITCHECK_token); } ;
IN_nonterminal : IN_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,IN_token); } ;
IMPORT_nonterminal : IMPORT_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,IMPORT_token); } ;
IMPLEMENTS_nonterminal : IMPLEMENTS_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,IMPLEMENTS_token); } ;
IDISPATCH_nonterminal : IDISPATCH_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,IDISPATCH_token); } ;
HRESULT_nonterminal : HRESULT_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,HRESULT_token); } ;
HIDEBYSIG_nonterminal : HIDEBYSIG_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,HIDEBYSIG_token); } ;
HANDLER_nonterminal : HANDLER_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,HANDLER_token); } ;
FROMUNMANAGED_nonterminal : FROMUNMANAGED_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,FROMUNMANAGED_token); } ;
FORWARDREF_nonterminal : FORWARDREF_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,FORWARDREF_token); } ;
FLOAT64_nonterminal : FLOAT64_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,FLOAT64_token); } ;
FLOAT32_nonterminal : FLOAT32_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,FLOAT32_token); } ;
FIXED_nonterminal : FIXED_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,FIXED_token); } ;
FINALLY_nonterminal : FINALLY_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,FINALLY_token); } ;
FINAL_nonterminal : FINAL_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,FINAL_token); } ;
FILTER_nonterminal : FILTER_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,FILTER_token); } ;
FILETIME_nonterminal : FILETIME_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,FILETIME_token); } ;
FIELD_nonterminal : FIELD_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,FIELD_token); } ;
FAULT_nonterminal : FAULT_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,FAULT_token); } ;
FASTCALL_nonterminal : FASTCALL_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,FASTCALL_token); } ;
FAMORASSEM_nonterminal : FAMORASSEM_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,FAMORASSEM_token); } ;
FAMILY_nonterminal : FAMILY_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,FAMILY_token); } ;
FAMANDASSEM_nonterminal : FAMANDASSEM_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,FAMANDASSEM_token); } ;
FALSE_nonterminal : FALSE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,FALSE_token); } ;
EXTERN_nonterminal : EXTERN_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,EXTERN_token); } ;
EXTENDS_nonterminal : EXTENDS_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,EXTENDS_token); } ;
EXPLICIT_nonterminal : EXPLICIT_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,EXPLICIT_token); } ;
ERROR_nonterminal : ERROR_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,ERROR_token); } ;
ENUM_nonterminal : ENUM_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,ENUM_token); } ;
DENY_nonterminal : DENY_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,DENY_token); } ;
DEMAND_nonterminal : DEMAND_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,DEMAND_token); } ;
DEFAULT_nonterminal : DEFAULT_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,DEFAULT_token); } ;
DECIMAL_nonterminal : DECIMAL_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,DECIMAL_token); } ;
DATE_nonterminal : DATE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,DATE_token); } ;
CURRENCY_nonterminal : CURRENCY_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CURRENCY_token); } ;
CLSID_nonterminal : CLSID_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CLSID_token); } ;
CIL_nonterminal : CIL_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CIL_token); } ;
CHAR_nonterminal : CHAR_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CHAR_token); } ;
CF_nonterminal : CF_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CF_token); } ;
CDECL_nonterminal : CDECL_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CDECL_token); } ;
CATCH_nonterminal : CATCH_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CATCH_token); } ;
CARRAY_nonterminal : CARRAY_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CARRAY_token); } ;
CALLMOSTDERIVED_nonterminal : CALLMOSTDERIVED_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CALLMOSTDERIVED_token); } ;
BYVALSTR_nonterminal : BYVALSTR_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,BYVALSTR_token); } ;
BYTEARRAY_nonterminal : BYTEARRAY_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,BYTEARRAY_token); } ;
BSTR_nonterminal : BSTR_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,BSTR_token); } ;
BOOL_nonterminal : BOOL_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,BOOL_token); } ;
BLOB_OBJECT_nonterminal : BLOB_OBJECT_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,BLOB_OBJECT_token); } ;
BLOB_nonterminal : BLOB_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,BLOB_token); } ;
BEFOREFIELDINIT_nonterminal : BEFOREFIELDINIT_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,BEFOREFIELDINIT_token); } ;
AUTOCHAR_nonterminal : AUTOCHAR_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,AUTOCHAR_token); } ;
AUTO_nonterminal : AUTO_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,AUTO_token); } ;
AT_nonterminal : AT_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,AT_token); } ;
ASSERT_nonterminal : ASSERT_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,ASSERT_token); } ;
ASSEMBLY_nonterminal : ASSEMBLY_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,ASSEMBLY_token); } ;
AS_nonterminal : AS_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,AS_token); } ;
ARRAY_nonterminal : ARRAY_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,ARRAY_token); } ;
ANY_nonterminal : ANY_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,ANY_token); } ;
ANSI_nonterminal : ANSI_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,ANSI_token); } ;
ALIGNMENT_nonterminal : ALIGNMENT_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,ALIGNMENT_token); } ;
ALGORITHM_nonterminal : ALGORITHM_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,ALGORITHM_token); } ;
ABSTRACT_nonterminal : ABSTRACT_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,ABSTRACT_token); } ;
ZEROINIT_nonterminal : ZEROINIT_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,ZEROINIT_token); } ;
VTFIXUP_nonterminal : VTFIXUP_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,VTFIXUP_token); } ;
VTENTRY_nonterminal : VTENTRY_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,VTENTRY_token); } ;
VER_nonterminal : VER_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,VER_token); } ;
TRY_nonterminal : TRY_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,TRY_token); } ;
SUBSYSTEM_nonterminal : SUBSYSTEM_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,SUBSYSTEM_token); } ;
SIZE_nonterminal : SIZE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,SIZE_token); } ;
SET_nonterminal : SET_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,SET_token); } ;
REMOVEON_nonterminal : REMOVEON_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,REMOVEON_token); } ;
PUBLICKEYTOKEN_nonterminal : PUBLICKEYTOKEN_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,PUBLICKEYTOKEN_token); } ;
PUBLICKEY_nonterminal : PUBLICKEY_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,PUBLICKEY_token); } ;
PROPERTY_nonterminal : PROPERTY_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,PROPERTY_token); } ;
PERMISSIONSET_nonterminal : PERMISSIONSET_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,PERMISSIONSET_token); } ;
PERMISSION_nonterminal : PERMISSION_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,PERMISSION_token); } ;
PARAM_nonterminal : PARAM_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,PARAM_token); } ;
PACK_nonterminal : PACK_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,PACK_token); } ;
OVERRIDE_nonterminal : OVERRIDE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,OVERRIDE_token); } ;
OTHER_nonterminal : OTHER_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,OTHER_token); } ;
NAMESPACE_nonterminal : NAMESPACE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,NAMESPACE_token); } ;
MRESOURCE_nonterminal : MRESOURCE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,MRESOURCE_token); } ;
MODULE_nonterminal : MODULE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,MODULE_token); } ;
MAXSTACK_nonterminal : MAXSTACK_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,MAXSTACK_token); } ;
LOCALS_nonterminal : LOCALS_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LOCALS_token); } ;
LOCALE_nonterminal : LOCALE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LOCALE_token); } ;
LANGUAGE_nonterminal : LANGUAGE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LANGUAGE_token); } ;
LINE_nonterminal : LINE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,LINE_token); } ;
IMAGEBASE_nonterminal : IMAGEBASE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,IMAGEBASE_token); } ;
HASH_nonterminal : HASH_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,HASH_token); } ;
DOTGET_nonterminal : DOTGET_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,DOTGET_token); } ;
FIRE_nonterminal : FIRE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,FIRE_token); } ;
FILE_nonterminal : FILE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,FILE_token); } ;
FIELD_nonterminal : FIELD_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,FIELD_token); } ;
EXPORT_nonterminal : EXPORT_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,EXPORT_token); } ;
EVENT_nonterminal : EVENT_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,EVENT_token); } ;
ENTRYPOINT_nonterminal : ENTRYPOINT_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,ENTRYPOINT_token); } ;
EMITBYTE_nonterminal : EMITBYTE_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,EMITBYTE_token); } ;
DATA_nonterminal : DATA_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,DATA_token); } ;
CUSTOM_nonterminal : CUSTOM_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CUSTOM_token); } ;
CTOR_nonterminal : CTOR_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CTOR_token); } ;
CORFLAGS_nonterminal : CORFLAGS_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CORFLAGS_token); } ;
CLASS_nonterminal : CLASS_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CLASS_token); } ;
CCTOR_nonterminal : CCTOR_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,CCTOR_token); } ;
DOTASSEMBLY_nonterminal : DOTASSEMBLY_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,DOTASSEMBLY_token); } ;
ADDON_nonterminal : ADDON_token
   { Token_String := new String'(Get_Token_String);
     $$ := new Parseable_Token'(Get_Current_Line,Get_Current_Column-Token_String.all'Length,
     Token_String,ADDON_token); } ;

adagoop_first : program_module_nonterminal
{ Parse_Tree := $1; } ; 

compqstring_nonterminal : 
   QSTRING_nonterminal  {
   $$ := new compqstring_nonterminal1;
   compqstring_nonterminal1($$.all).QSTRING_part :=    Parseable_Token_Ptr($1);
   }|
   compqstring_nonterminal PLUS_nonterminal QSTRING_nonterminal  {
   $$ := new compqstring_nonterminal2;
   compqstring_nonterminal2($$.all).compqstring_part :=    compqstring_Nonterminal_Ptr($1);
   compqstring_nonterminal2($$.all).PLUS_part :=    Parseable_Token_Ptr($2);
   compqstring_nonterminal2($$.all).QSTRING_part :=    Parseable_Token_Ptr($3);
   };

FLOAT64_GRAMMAR_nonterminal : 
   FLOAT64_LITERAL_nonterminal  {
   $$ := new FLOAT64_GRAMMAR_nonterminal1;
   FLOAT64_GRAMMAR_nonterminal1($$.all).FLOAT64_LITERAL_part :=    Parseable_Token_Ptr($1);
   }|
   FLOAT32_nonterminal LPAREN_nonterminal INT64_LITERAL_nonterminal RPAREN_nonterminal  {
   $$ := new FLOAT64_GRAMMAR_nonterminal2;
   FLOAT64_GRAMMAR_nonterminal2($$.all).FLOAT32_part :=    Parseable_Token_Ptr($1);
   FLOAT64_GRAMMAR_nonterminal2($$.all).LPAREN_part :=    Parseable_Token_Ptr($2);
   FLOAT64_GRAMMAR_nonterminal2($$.all).INT64_LITERAL_part :=    Parseable_Token_Ptr($3);
   FLOAT64_GRAMMAR_nonterminal2($$.all).RPAREN_part :=    Parseable_Token_Ptr($4);
   }|
   FLOAT64_nonterminal LPAREN_nonterminal INT64_LITERAL_nonterminal RPAREN_nonterminal  {
   $$ := new FLOAT64_GRAMMAR_nonterminal3;
   FLOAT64_GRAMMAR_nonterminal3($$.all).FLOAT64_part :=    Parseable_Token_Ptr($1);
   FLOAT64_GRAMMAR_nonterminal3($$.all).LPAREN_part :=    Parseable_Token_Ptr($2);
   FLOAT64_GRAMMAR_nonterminal3($$.all).INT64_LITERAL_part :=    Parseable_Token_Ptr($3);
   FLOAT64_GRAMMAR_nonterminal3($$.all).RPAREN_part :=    Parseable_Token_Ptr($4);
   };

bytes_nonterminal : 
    {
   $$ := new bytes_nonterminal1;
   }|
   hexbytes_nonterminal  {
   $$ := new bytes_nonterminal2;
   bytes_nonterminal2($$.all).hexbytes_part :=    hexbytes_Nonterminal_Ptr($1);
   };

hexbytes_nonterminal : 
   HEXBYTE_nonterminal  {
   $$ := new hexbytes_nonterminal1;
   hexbytes_nonterminal1($$.all).HEXBYTE_part :=    Parseable_Token_Ptr($1);
   }|
   hexbytes_nonterminal HEXBYTE_nonterminal  {
   $$ := new hexbytes_nonterminal2;
   hexbytes_nonterminal2($$.all).hexbytes_part :=    hexbytes_Nonterminal_Ptr($1);
   hexbytes_nonterminal2($$.all).HEXBYTE_part :=    Parseable_Token_Ptr($2);
   };

truefalse_nonterminal : 
   TRUE_nonterminal  {
   $$ := new truefalse_nonterminal1;
   truefalse_nonterminal1($$.all).TRUE_part :=    Parseable_Token_Ptr($1);
   }|
   FALSE_nonterminal  {
   $$ := new truefalse_nonterminal2;
   truefalse_nonterminal2($$.all).FALSE_part :=    Parseable_Token_Ptr($1);
   };

id_nonterminal : 
   IDENTIFIER_nonterminal  {
   $$ := new id_nonterminal1;
   id_nonterminal1($$.all).IDENTIFIER_part :=    Parseable_Token_Ptr($1);
   }|
   SQSTRING_nonterminal  {
   $$ := new id_nonterminal2;
   id_nonterminal2($$.all).SQSTRING_part :=    Parseable_Token_Ptr($1);
   };

compName_nonterminal : 
   id_nonterminal  {
   $$ := new compName_nonterminal1;
   compName_nonterminal1($$.all).id_part :=    id_Nonterminal_Ptr($1);
   }|
   DOTTED_NAME_nonterminal  {
   $$ := new compName_nonterminal2;
   compName_nonterminal2($$.all).DOTTED_NAME_part :=    Parseable_Token_Ptr($1);
   }|
   compName_nonterminal DOT_nonterminal compName_nonterminal  {
   $$ := new compName_nonterminal3;
   compName_nonterminal3($$.all).compName_part1 :=    compName_Nonterminal_Ptr($1);
   compName_nonterminal3($$.all).DOT_part :=    Parseable_Token_Ptr($2);
   compName_nonterminal3($$.all).compName_part2 :=    compName_Nonterminal_Ptr($3);
   };

program_module_nonterminal : 
   decls_nonterminal  {
   $$ := new program_module_nonterminal;
   program_module_nonterminal($$.all).decls_part :=    decls_Nonterminal_Ptr($1);
   };

decls_nonterminal : 
    {
   $$ := new decls_nonterminal1;
   }|
   decls_nonterminal decl_nonterminal  {
   $$ := new decls_nonterminal2;
   decls_nonterminal2($$.all).decls_part :=    decls_Nonterminal_Ptr($1);
   decls_nonterminal2($$.all).decl_part :=    decl_Nonterminal_Ptr($2);
   };

decl_nonterminal : 
   classHead_nonterminal LBRACE_nonterminal classDecls_nonterminal RBRACE_nonterminal  {
   $$ := new decl_nonterminal1;
   decl_nonterminal1($$.all).classHead_part :=    classHead_Nonterminal_Ptr($1);
   decl_nonterminal1($$.all).LBRACE_part :=    Parseable_Token_Ptr($2);
   decl_nonterminal1($$.all).classDecls_part :=    classDecls_Nonterminal_Ptr($3);
   decl_nonterminal1($$.all).RBRACE_part :=    Parseable_Token_Ptr($4);
   }|
   nameSpaceHead_nonterminal LBRACE_nonterminal decls_nonterminal RBRACE_nonterminal  {
   $$ := new decl_nonterminal2;
   decl_nonterminal2($$.all).nameSpaceHead_part :=    nameSpaceHead_Nonterminal_Ptr($1);
   decl_nonterminal2($$.all).LBRACE_part :=    Parseable_Token_Ptr($2);
   decl_nonterminal2($$.all).decls_part :=    decls_Nonterminal_Ptr($3);
   decl_nonterminal2($$.all).RBRACE_part :=    Parseable_Token_Ptr($4);
   }|
   methodHead_nonterminal methodDecls_nonterminal RBRACE_nonterminal  {
   $$ := new decl_nonterminal3;
   decl_nonterminal3($$.all).methodHead_part :=    methodHead_Nonterminal_Ptr($1);
   decl_nonterminal3($$.all).methodDecls_part :=    methodDecls_Nonterminal_Ptr($2);
   decl_nonterminal3($$.all).RBRACE_part :=    Parseable_Token_Ptr($3);
   }|
   fieldDecl_nonterminal  {
   $$ := new decl_nonterminal4;
   decl_nonterminal4($$.all).fieldDecl_part :=    fieldDecl_Nonterminal_Ptr($1);
   }|
   dataDecl_nonterminal  {
   $$ := new decl_nonterminal5;
   decl_nonterminal5($$.all).dataDecl_part :=    dataDecl_Nonterminal_Ptr($1);
   }|
   vtfixupDecl_nonterminal  {
   $$ := new decl_nonterminal6;
   decl_nonterminal6($$.all).vtfixupDecl_part :=    vtfixupDecl_Nonterminal_Ptr($1);
   }|
   fileDecl_nonterminal  {
   $$ := new decl_nonterminal7;
   decl_nonterminal7($$.all).fileDecl_part :=    fileDecl_Nonterminal_Ptr($1);
   }|
   assemblyHead_nonterminal LBRACE_nonterminal assemblyDecls_nonterminal RBRACE_nonterminal  {
   $$ := new decl_nonterminal8;
   decl_nonterminal8($$.all).assemblyHead_part :=    assemblyHead_Nonterminal_Ptr($1);
   decl_nonterminal8($$.all).LBRACE_part :=    Parseable_Token_Ptr($2);
   decl_nonterminal8($$.all).assemblyDecls_part :=    assemblyDecls_Nonterminal_Ptr($3);
   decl_nonterminal8($$.all).RBRACE_part :=    Parseable_Token_Ptr($4);
   }|
   assemblyRefHead_nonterminal LBRACE_nonterminal assemblyRefDecls_nonterminal RBRACE_nonterminal  {
   $$ := new decl_nonterminal9;
   decl_nonterminal9($$.all).assemblyRefHead_part :=    assemblyRefHead_Nonterminal_Ptr($1);
   decl_nonterminal9($$.all).LBRACE_part :=    Parseable_Token_Ptr($2);
   decl_nonterminal9($$.all).assemblyRefDecls_part :=    assemblyRefDecls_Nonterminal_Ptr($3);
   decl_nonterminal9($$.all).RBRACE_part :=    Parseable_Token_Ptr($4);
   }|
   expTypeHead_nonterminal LBRACE_nonterminal expTypeDecls_nonterminal RBRACE_nonterminal  {
   $$ := new decl_nonterminal10;
   decl_nonterminal10($$.all).expTypeHead_part :=    expTypeHead_Nonterminal_Ptr($1);
   decl_nonterminal10($$.all).LBRACE_part :=    Parseable_Token_Ptr($2);
   decl_nonterminal10($$.all).expTypeDecls_part :=    expTypeDecls_Nonterminal_Ptr($3);
   decl_nonterminal10($$.all).RBRACE_part :=    Parseable_Token_Ptr($4);
   }|
   manifestResHead_nonterminal LBRACE_nonterminal manifestResDecls_nonterminal RBRACE_nonterminal  {
   $$ := new decl_nonterminal11;
   decl_nonterminal11($$.all).manifestResHead_part :=    manifestResHead_Nonterminal_Ptr($1);
   decl_nonterminal11($$.all).LBRACE_part :=    Parseable_Token_Ptr($2);
   decl_nonterminal11($$.all).manifestResDecls_part :=    manifestResDecls_Nonterminal_Ptr($3);
   decl_nonterminal11($$.all).RBRACE_part :=    Parseable_Token_Ptr($4);
   }|
   moduleHead_nonterminal  {
   $$ := new decl_nonterminal12;
   decl_nonterminal12($$.all).moduleHead_part :=    moduleHead_Nonterminal_Ptr($1);
   }|
   secDecl_nonterminal  {
   $$ := new decl_nonterminal13;
   decl_nonterminal13($$.all).secDecl_part :=    secDecl_Nonterminal_Ptr($1);
   }|
   customAttrDecl_nonterminal  {
   $$ := new decl_nonterminal14;
   decl_nonterminal14($$.all).customAttrDecl_part :=    customAttrDecl_Nonterminal_Ptr($1);
   }|
   SUBSYSTEM_nonterminal INT32_nonterminal  {
   $$ := new decl_nonterminal15;
   decl_nonterminal15($$.all).SUBSYSTEM_part :=    Parseable_Token_Ptr($1);
   decl_nonterminal15($$.all).INT32_part :=    Parseable_Token_Ptr($2);
   }|
   CORFLAGS_nonterminal INT32_nonterminal  {
   $$ := new decl_nonterminal16;
   decl_nonterminal16($$.all).CORFLAGS_part :=    Parseable_Token_Ptr($1);
   decl_nonterminal16($$.all).INT32_part :=    Parseable_Token_Ptr($2);
   }|
   FILE_nonterminal ALIGNMENT_nonterminal INT32_nonterminal  {
   $$ := new decl_nonterminal17;
   decl_nonterminal17($$.all).FILE_part :=    Parseable_Token_Ptr($1);
   decl_nonterminal17($$.all).ALIGNMENT_part :=    Parseable_Token_Ptr($2);
   decl_nonterminal17($$.all).INT32_part :=    Parseable_Token_Ptr($3);
   }|
   IMAGEBASE_nonterminal INT64_LITERAL_nonterminal  {
   $$ := new decl_nonterminal18;
   decl_nonterminal18($$.all).IMAGEBASE_part :=    Parseable_Token_Ptr($1);
   decl_nonterminal18($$.all).INT64_LITERAL_part :=    Parseable_Token_Ptr($2);
   }|
   extSourceSpec_nonterminal  {
   $$ := new decl_nonterminal19;
   decl_nonterminal19($$.all).extSourceSpec_part :=    extSourceSpec_Nonterminal_Ptr($1);
   }|
   languageDecl_nonterminal  {
   $$ := new decl_nonterminal20;
   decl_nonterminal20($$.all).languageDecl_part :=    languageDecl_Nonterminal_Ptr($1);
   };

extSourceSpec_nonterminal : 
   LINE_nonterminal INT32_nonterminal SQSTRING_nonterminal  {
   $$ := new extSourceSpec_nonterminal1;
   extSourceSpec_nonterminal1($$.all).LINE_part :=    Parseable_Token_Ptr($1);
   extSourceSpec_nonterminal1($$.all).INT32_part :=    Parseable_Token_Ptr($2);
   extSourceSpec_nonterminal1($$.all).SQSTRING_part :=    Parseable_Token_Ptr($3);
   }|
   LINE_nonterminal INT32_nonterminal  {
   $$ := new extSourceSpec_nonterminal2;
   extSourceSpec_nonterminal2($$.all).LINE_part :=    Parseable_Token_Ptr($1);
   extSourceSpec_nonterminal2($$.all).INT32_part :=    Parseable_Token_Ptr($2);
   }|
   LINE_nonterminal INT32_nonterminal COLON_nonterminal INT32_nonterminal SQSTRING_nonterminal  {
   $$ := new extSourceSpec_nonterminal3;
   extSourceSpec_nonterminal3($$.all).LINE_part :=    Parseable_Token_Ptr($1);
   extSourceSpec_nonterminal3($$.all).INT32_part1 :=    Parseable_Token_Ptr($2);
   extSourceSpec_nonterminal3($$.all).COLON_part :=    Parseable_Token_Ptr($3);
   extSourceSpec_nonterminal3($$.all).INT32_part2 :=    Parseable_Token_Ptr($4);
   extSourceSpec_nonterminal3($$.all).SQSTRING_part :=    Parseable_Token_Ptr($5);
   }|
   LINE_nonterminal INT32_nonterminal COLON_nonterminal INT32_nonterminal  {
   $$ := new extSourceSpec_nonterminal4;
   extSourceSpec_nonterminal4($$.all).LINE_part :=    Parseable_Token_Ptr($1);
   extSourceSpec_nonterminal4($$.all).INT32_part1 :=    Parseable_Token_Ptr($2);
   extSourceSpec_nonterminal4($$.all).COLON_part :=    Parseable_Token_Ptr($3);
   extSourceSpec_nonterminal4($$.all).INT32_part2 :=    Parseable_Token_Ptr($4);
   };

languageDecl_nonterminal : 
   LANGUAGE_nonterminal SQSTRING_nonterminal  {
   $$ := new languageDecl_nonterminal1;
   languageDecl_nonterminal1($$.all).LANGUAGE_part :=    Parseable_Token_Ptr($1);
   languageDecl_nonterminal1($$.all).SQSTRING_part :=    Parseable_Token_Ptr($2);
   }|
   LANGUAGE_nonterminal SQSTRING_nonterminal COMMA_nonterminal SQSTRING_nonterminal  {
   $$ := new languageDecl_nonterminal2;
   languageDecl_nonterminal2($$.all).LANGUAGE_part :=    Parseable_Token_Ptr($1);
   languageDecl_nonterminal2($$.all).SQSTRING_part1 :=    Parseable_Token_Ptr($2);
   languageDecl_nonterminal2($$.all).COMMA_part :=    Parseable_Token_Ptr($3);
   languageDecl_nonterminal2($$.all).SQSTRING_part2 :=    Parseable_Token_Ptr($4);
   }|
   LANGUAGE_nonterminal SQSTRING_nonterminal COMMA_nonterminal SQSTRING_nonterminal COMMA_nonterminal SQSTRING_nonterminal  {
   $$ := new languageDecl_nonterminal3;
   languageDecl_nonterminal3($$.all).LANGUAGE_part :=    Parseable_Token_Ptr($1);
   languageDecl_nonterminal3($$.all).SQSTRING_part1 :=    Parseable_Token_Ptr($2);
   languageDecl_nonterminal3($$.all).COMMA_part1 :=    Parseable_Token_Ptr($3);
   languageDecl_nonterminal3($$.all).SQSTRING_part2 :=    Parseable_Token_Ptr($4);
   languageDecl_nonterminal3($$.all).COMMA_part2 :=    Parseable_Token_Ptr($5);
   languageDecl_nonterminal3($$.all).SQSTRING_part3 :=    Parseable_Token_Ptr($6);
   };

vtfixupDecl_nonterminal : 
   VTFIXUP_nonterminal LBRACKET_nonterminal INT32_nonterminal RBRACKET_nonterminal vtfixupAttr_nonterminal AT_nonterminal id_nonterminal  {
   $$ := new vtfixupDecl_nonterminal;
   vtfixupDecl_nonterminal($$.all).VTFIXUP_part :=    Parseable_Token_Ptr($1);
   vtfixupDecl_nonterminal($$.all).LBRACKET_part :=    Parseable_Token_Ptr($2);
   vtfixupDecl_nonterminal($$.all).INT32_part :=    Parseable_Token_Ptr($3);
   vtfixupDecl_nonterminal($$.all).RBRACKET_part :=    Parseable_Token_Ptr($4);
   vtfixupDecl_nonterminal($$.all).vtfixupAttr_part :=    vtfixupAttr_Nonterminal_Ptr($5);
   vtfixupDecl_nonterminal($$.all).AT_part :=    Parseable_Token_Ptr($6);
   vtfixupDecl_nonterminal($$.all).id_part :=    id_Nonterminal_Ptr($7);
   };

vtfixupAttr_nonterminal : 
    {
   $$ := new vtfixupAttr_nonterminal1;
   }|
   vtfixupAttr_nonterminal INT32_nonterminal  {
   $$ := new vtfixupAttr_nonterminal2;
   vtfixupAttr_nonterminal2($$.all).vtfixupAttr_part :=    vtfixupAttr_Nonterminal_Ptr($1);
   vtfixupAttr_nonterminal2($$.all).INT32_part :=    Parseable_Token_Ptr($2);
   }|
   vtfixupAttr_nonterminal INT64_LITERAL_nonterminal  {
   $$ := new vtfixupAttr_nonterminal3;
   vtfixupAttr_nonterminal3($$.all).vtfixupAttr_part :=    vtfixupAttr_Nonterminal_Ptr($1);
   vtfixupAttr_nonterminal3($$.all).INT64_LITERAL_part :=    Parseable_Token_Ptr($2);
   }|
   vtfixupAttr_nonterminal FROMUNMANAGED_nonterminal  {
   $$ := new vtfixupAttr_nonterminal4;
   vtfixupAttr_nonterminal4($$.all).vtfixupAttr_part :=    vtfixupAttr_Nonterminal_Ptr($1);
   vtfixupAttr_nonterminal4($$.all).FROMUNMANAGED_part :=    Parseable_Token_Ptr($2);
   }|
   vtfixupAttr_nonterminal CALLMOSTDERIVED_nonterminal  {
   $$ := new vtfixupAttr_nonterminal5;
   vtfixupAttr_nonterminal5($$.all).vtfixupAttr_part :=    vtfixupAttr_Nonterminal_Ptr($1);
   vtfixupAttr_nonterminal5($$.all).CALLMOSTDERIVED_part :=    Parseable_Token_Ptr($2);
   };

nameSpaceHead_nonterminal : 
   NAMESPACE_nonterminal compName_nonterminal  {
   $$ := new nameSpaceHead_nonterminal;
   nameSpaceHead_nonterminal($$.all).NAMESPACE_part :=    Parseable_Token_Ptr($1);
   nameSpaceHead_nonterminal($$.all).compName_part :=    compName_Nonterminal_Ptr($2);
   };

classHead_nonterminal : 
   CLASS_nonterminal classAttrs_nonterminal id_nonterminal extendsClause_nonterminal implClause_nonterminal  {
   $$ := new classHead_nonterminal;
   classHead_nonterminal($$.all).CLASS_part :=    Parseable_Token_Ptr($1);
   classHead_nonterminal($$.all).classAttrs_part :=    classAttrs_Nonterminal_Ptr($2);
   classHead_nonterminal($$.all).id_part :=    id_Nonterminal_Ptr($3);
   classHead_nonterminal($$.all).extendsClause_part :=    extendsClause_Nonterminal_Ptr($4);
   classHead_nonterminal($$.all).implClause_part :=    implClause_Nonterminal_Ptr($5);
   };

classAttrs_nonterminal : 
    {
   $$ := new classAttrs_nonterminal1;
   }|
   classAttrs_nonterminal classAttr_nonterminal  {
   $$ := new classAttrs_nonterminal2;
   classAttrs_nonterminal2($$.all).classAttrs_part :=    classAttrs_Nonterminal_Ptr($1);
   classAttrs_nonterminal2($$.all).classAttr_part :=    classAttr_Nonterminal_Ptr($2);
   };

classAttr_nonterminal : 
   PUBLIC_nonterminal  {
   $$ := new classAttr_nonterminal1;
   classAttr_nonterminal1($$.all).PUBLIC_part :=    Parseable_Token_Ptr($1);
   }|
   PRIVATE_nonterminal  {
   $$ := new classAttr_nonterminal2;
   classAttr_nonterminal2($$.all).PRIVATE_part :=    Parseable_Token_Ptr($1);
   }|
   NESTED_nonterminal PUBLIC_nonterminal  {
   $$ := new classAttr_nonterminal3;
   classAttr_nonterminal3($$.all).NESTED_part :=    Parseable_Token_Ptr($1);
   classAttr_nonterminal3($$.all).PUBLIC_part :=    Parseable_Token_Ptr($2);
   }|
   NESTED_nonterminal PRIVATE_nonterminal  {
   $$ := new classAttr_nonterminal4;
   classAttr_nonterminal4($$.all).NESTED_part :=    Parseable_Token_Ptr($1);
   classAttr_nonterminal4($$.all).PRIVATE_part :=    Parseable_Token_Ptr($2);
   }|
   NESTED_nonterminal FAMILY_nonterminal  {
   $$ := new classAttr_nonterminal5;
   classAttr_nonterminal5($$.all).NESTED_part :=    Parseable_Token_Ptr($1);
   classAttr_nonterminal5($$.all).FAMILY_part :=    Parseable_Token_Ptr($2);
   }|
   NESTED_nonterminal ASSEMBLY_nonterminal  {
   $$ := new classAttr_nonterminal6;
   classAttr_nonterminal6($$.all).NESTED_part :=    Parseable_Token_Ptr($1);
   classAttr_nonterminal6($$.all).ASSEMBLY_part :=    Parseable_Token_Ptr($2);
   }|
   NESTED_nonterminal FAMANDASSEM_nonterminal  {
   $$ := new classAttr_nonterminal7;
   classAttr_nonterminal7($$.all).NESTED_part :=    Parseable_Token_Ptr($1);
   classAttr_nonterminal7($$.all).FAMANDASSEM_part :=    Parseable_Token_Ptr($2);
   }|
   NESTED_nonterminal FAMORASSEM_nonterminal  {
   $$ := new classAttr_nonterminal8;
   classAttr_nonterminal8($$.all).NESTED_part :=    Parseable_Token_Ptr($1);
   classAttr_nonterminal8($$.all).FAMORASSEM_part :=    Parseable_Token_Ptr($2);
   }|
   VALUE_nonterminal  {
   $$ := new classAttr_nonterminal9;
   classAttr_nonterminal9($$.all).VALUE_part :=    Parseable_Token_Ptr($1);
   }|
   ENUM_nonterminal  {
   $$ := new classAttr_nonterminal10;
   classAttr_nonterminal10($$.all).ENUM_part :=    Parseable_Token_Ptr($1);
   }|
   INTERFACE_nonterminal  {
   $$ := new classAttr_nonterminal11;
   classAttr_nonterminal11($$.all).INTERFACE_part :=    Parseable_Token_Ptr($1);
   }|
   SEALED_nonterminal  {
   $$ := new classAttr_nonterminal12;
   classAttr_nonterminal12($$.all).SEALED_part :=    Parseable_Token_Ptr($1);
   }|
   ABSTRACT_nonterminal  {
   $$ := new classAttr_nonterminal13;
   classAttr_nonterminal13($$.all).ABSTRACT_part :=    Parseable_Token_Ptr($1);
   }|
   AUTO_nonterminal  {
   $$ := new classAttr_nonterminal14;
   classAttr_nonterminal14($$.all).AUTO_part :=    Parseable_Token_Ptr($1);
   }|
   SEQUENTIAL_nonterminal  {
   $$ := new classAttr_nonterminal15;
   classAttr_nonterminal15($$.all).SEQUENTIAL_part :=    Parseable_Token_Ptr($1);
   }|
   EXPLICIT_nonterminal  {
   $$ := new classAttr_nonterminal16;
   classAttr_nonterminal16($$.all).EXPLICIT_part :=    Parseable_Token_Ptr($1);
   }|
   ANSI_nonterminal  {
   $$ := new classAttr_nonterminal17;
   classAttr_nonterminal17($$.all).ANSI_part :=    Parseable_Token_Ptr($1);
   }|
   UNICODE_nonterminal  {
   $$ := new classAttr_nonterminal18;
   classAttr_nonterminal18($$.all).UNICODE_part :=    Parseable_Token_Ptr($1);
   }|
   AUTOCHAR_nonterminal  {
   $$ := new classAttr_nonterminal19;
   classAttr_nonterminal19($$.all).AUTOCHAR_part :=    Parseable_Token_Ptr($1);
   }|
   IMPORT_nonterminal  {
   $$ := new classAttr_nonterminal20;
   classAttr_nonterminal20($$.all).IMPORT_part :=    Parseable_Token_Ptr($1);
   }|
   SERIALIZABLE_nonterminal  {
   $$ := new classAttr_nonterminal21;
   classAttr_nonterminal21($$.all).SERIALIZABLE_part :=    Parseable_Token_Ptr($1);
   }|
   BEFOREFIELDINIT_nonterminal  {
   $$ := new classAttr_nonterminal22;
   classAttr_nonterminal22($$.all).BEFOREFIELDINIT_part :=    Parseable_Token_Ptr($1);
   }|
   SPECIALNAME_nonterminal  {
   $$ := new classAttr_nonterminal23;
   classAttr_nonterminal23($$.all).SPECIALNAME_part :=    Parseable_Token_Ptr($1);
   }|
   RTSPECIALNAME_nonterminal  {
   $$ := new classAttr_nonterminal24;
   classAttr_nonterminal24($$.all).RTSPECIALNAME_part :=    Parseable_Token_Ptr($1);
   };

extendsClause_nonterminal : 
    {
   $$ := new extendsClause_nonterminal1;
   }|
   EXTENDS_nonterminal classRef_nonterminal  {
   $$ := new extendsClause_nonterminal2;
   extendsClause_nonterminal2($$.all).EXTENDS_part :=    Parseable_Token_Ptr($1);
   extendsClause_nonterminal2($$.all).classRef_part :=    classRef_Nonterminal_Ptr($2);
   };

implClause_nonterminal : 
    {
   $$ := new implClause_nonterminal1;
   }|
   IMPLEMENTS_nonterminal classRefs_nonterminal  {
   $$ := new implClause_nonterminal2;
   implClause_nonterminal2($$.all).IMPLEMENTS_part :=    Parseable_Token_Ptr($1);
   implClause_nonterminal2($$.all).classRefs_part :=    classRefs_Nonterminal_Ptr($2);
   };

classRefs_nonterminal : 
   classRefs_nonterminal COMMA_nonterminal classRef_nonterminal  {
   $$ := new classRefs_nonterminal1;
   classRefs_nonterminal1($$.all).classRefs_part :=    classRefs_Nonterminal_Ptr($1);
   classRefs_nonterminal1($$.all).COMMA_part :=    Parseable_Token_Ptr($2);
   classRefs_nonterminal1($$.all).classRef_part :=    classRef_Nonterminal_Ptr($3);
   }|
   classRef_nonterminal  {
   $$ := new classRefs_nonterminal2;
   classRefs_nonterminal2($$.all).classRef_part :=    classRef_Nonterminal_Ptr($1);
   };

classRef_nonterminal : 
   LBRACKET_nonterminal compName_nonterminal RBRACKET_nonterminal slashedName_nonterminal  {
   $$ := new classRef_nonterminal1;
   classRef_nonterminal1($$.all).LBRACKET_part :=    Parseable_Token_Ptr($1);
   classRef_nonterminal1($$.all).compName_part :=    compName_Nonterminal_Ptr($2);
   classRef_nonterminal1($$.all).RBRACKET_part :=    Parseable_Token_Ptr($3);
   classRef_nonterminal1($$.all).slashedName_part :=    slashedName_Nonterminal_Ptr($4);
   }|
   LBRACKET_nonterminal MODULE_nonterminal compName_nonterminal RBRACKET_nonterminal slashedName_nonterminal  {
   $$ := new classRef_nonterminal2;
   classRef_nonterminal2($$.all).LBRACKET_part :=    Parseable_Token_Ptr($1);
   classRef_nonterminal2($$.all).MODULE_part :=    Parseable_Token_Ptr($2);
   classRef_nonterminal2($$.all).compName_part :=    compName_Nonterminal_Ptr($3);
   classRef_nonterminal2($$.all).RBRACKET_part :=    Parseable_Token_Ptr($4);
   classRef_nonterminal2($$.all).slashedName_part :=    slashedName_Nonterminal_Ptr($5);
   }|
   slashedName_nonterminal  {
   $$ := new classRef_nonterminal3;
   classRef_nonterminal3($$.all).slashedName_part :=    slashedName_Nonterminal_Ptr($1);
   };

slashedName_nonterminal : 
   compName_nonterminal  {
   $$ := new slashedName_nonterminal1;
   slashedName_nonterminal1($$.all).compName_part :=    compName_Nonterminal_Ptr($1);
   }|
   slashedName_nonterminal SLASH_nonterminal compName_nonterminal  {
   $$ := new slashedName_nonterminal2;
   slashedName_nonterminal2($$.all).slashedName_part :=    slashedName_Nonterminal_Ptr($1);
   slashedName_nonterminal2($$.all).SLASH_part :=    Parseable_Token_Ptr($2);
   slashedName_nonterminal2($$.all).compName_part :=    compName_Nonterminal_Ptr($3);
   };

classDecls_nonterminal : 
    {
   $$ := new classDecls_nonterminal1;
   }|
   classDecls_nonterminal classDecl_nonterminal  {
   $$ := new classDecls_nonterminal2;
   classDecls_nonterminal2($$.all).classDecls_part :=    classDecls_Nonterminal_Ptr($1);
   classDecls_nonterminal2($$.all).classDecl_part :=    classDecl_Nonterminal_Ptr($2);
   };


%%

with msil_Model;
use msil_Model;
package msil_Parser is
   procedure Run(Filename : in String);
   function Get_Parse_Tree return Parseable_Ptr;
end msil_Parser;

with Text_IO;
use Text_IO;
with msil;
use msil;
with msil_Goto;
use msil_Goto;
with msil_Shift_Reduce;
use msil_Shift_Reduce;
with msil_Tokens;
use msil_Tokens;
package body msil_Parser is
   package Language_YY2_Lexical_Analyzer renames msil;
   use Language_YY2_Lexical_Analyzer;

   Parse_Tree : Parseable_Ptr;
   Token_String : String_Ptr;

   procedure YYError(S : in String := "Syntax Error") is
   begin
      Put_Line(S & " on line " &          integer'image(msil.Get_Current_Line));
   end YYError;

##%procedure_parse

   procedure Run(Filename : in String) is
   begin
      msil.Reset(Filename);
      begin
         YYParse;
      exception
         when Invalid_Character => YYError("Invalid Character");
         when others => YYError;
      end;
      msil.Close_Files;
   end Run;

   function Get_Parse_Tree return Parseable_Ptr is
   begin
      return Parse_Tree;
   end Get_Parse_Tree;
end msil_Parser;
