Пример #1
0
        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;
        }
Пример #2
0
	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;
	}