public override void EnterLookupTableEntry([NotNull] LookupTableEntryContext context) { string label = String.Empty; foreach (LookupTableEntryKeyContext lookupTableEntryKey in context.lookupTableEntryKey()) { string labelElement = lookupTableEntryKey.GetText(); if (lookupTableEntryKey.HEXADECIMAL() != null) { // Convert the constant to its integral value labelElement = Convert.ToUInt64(labelElement, 16).ToString(); } if (!String.IsNullOrEmpty(label)) { label += ","; } label += labelElement; } string value = null; if (context.QUOTEDVALUE() != null) { value = context.QUOTEDVALUE().GetText(); value = value.Substring(1, value.Length - 2).Trim(); } else { value = context.label().GetText(); } lookupTables[currentLookupTable][label] = value; return; }
public LookupTableEntryContext lookupTableEntry() { LookupTableEntryContext _localctx = new LookupTableEntryContext(Context, State); EnterRule(_localctx, 22, RULE_lookupTableEntry); int _la; try { EnterOuterAlt(_localctx, 1); { State = 117; _la = TokenStream.La(1); if (_la==DOC_COMMENT) { { State = 116; Match(DOC_COMMENT); } } State = 141; switch ( Interpreter.AdaptivePredict(TokenStream,14,Context) ) { case 1: { State = 119; lookupTableEntryKey(); State = 124; ErrorHandler.Sync(this); _la = TokenStream.La(1); while (_la==COMMA) { { { State = 120; Match(COMMA); State = 121; lookupTableEntryKey(); } } State = 126; ErrorHandler.Sync(this); _la = TokenStream.La(1); } State = 127; Match(COLON); State = 128; Match(QUOTEDVALUE); } break; case 2: { State = 130; lookupTableEntryKey(); State = 135; ErrorHandler.Sync(this); _la = TokenStream.La(1); while (_la==COMMA) { { { State = 131; Match(COMMA); State = 132; lookupTableEntryKey(); } } State = 137; ErrorHandler.Sync(this); _la = TokenStream.La(1); } State = 138; Match(COLON); State = 139; label(); } break; } } } catch (RecognitionException re) { _localctx.exception = re; ErrorHandler.ReportError(this, re); ErrorHandler.Recover(this, re); } finally { ExitRule(); } return _localctx; }