Esempio n. 1
0
        public override object VisitPrimaryExpression(PrimaryExpressionContext context)
        {
            switch (context.ChildCount)
            {
            case 1:
            { var c = context.GetChild(0);
              switch (c)
              {
              case DataStatementContext it:
              { return(Visit(context.dataStatement())); } break;

              case IdContext it:
              { return(Visit(context.id())); } break;
              }
              if (context.t.Type == Discard)
              {
                  return(new Result("var", "_"));
              }
            } break;

            case 2:
            { var id       = ((Result)Visit(context.id()));
              var template = "<" + ((string)Visit(context.templateCall())) + ">";
              var ret      = (new Result(id.text + template, id.text + template));
              ret.rootID = id.text;
              return(ret); } break;
            }
            var r = ((Result)Visit(context.expression()));

            return(new Result(r.data, (new System.Text.StringBuilder().Append("(").Append(r.text).Append(")")).To_Str()));
        }
Esempio n. 2
0
 public override void EnterPrimaryExpression([NotNull] PrimaryExpressionContext context)
 {
     if (context.Parent != null && context.Parent.Parent != null)
     {
         int    end   = context.Start.StopIndex;
         int    start = context.Start.StartIndex - context.Start.Column;
         string text  = context.Start.InputStream.GetText(new Interval(start, end));
         if (text.Contains("constant"))
         {
             isconst = true;
         }
     }
 }
Esempio n. 3
0
        public override object VisitPrimaryExpression([NotNull] PrimaryExpressionContext context)
        {
            if (context.ChildCount == 1)
            {
                var c = context.GetChild(0);
                if (c is DataStatementContext)
                {
                    return(Visit(context.dataStatement()));
                }
                else if (c is IdContext)
                {
                    return(Visit(context.id()));
                }
                else if (context.t.Type == Self)
                {
                    return(new Result {
                        text = "this", data = "var"
                    });
                }
                else if (context.t.Type == Discard)
                {
                    return(new Result {
                        text = "_", data = "var"
                    });
                }
            }
            else if (context.ChildCount == 2)
            {
                var id       = Visit(context.id()).@as <Result>();
                var template = Visit(context.templateCall()).@as <string>();
                return(new Result {
                    text = id.text + template, data = id.text + template
                });
            }
            var r = (Result)Visit(context.expression());

            return(new Result {
                text = "(" + r.text + ")", data = r.data
            });
        }
Esempio n. 4
0
        public override object VisitPrimaryExpression(PrimaryExpressionContext context)
        {
            if (context.ChildCount == 1)
            {
                var c = context.GetChild(0);
                if (c.@is <DataStatementContext>())
                {
                    return(Visit(context.dataStatement()));
                }
                else if (c.@is <IdContext>())
                {
                    return(Visit(context.id()));
                }
                else if (context.t.Type == Discard)
                {
                    return(new Result()
                    {
                        text = "_", data = "var"
                    });
                }
            }
            else if (context.ChildCount == 4)
            {
                var id       = (Result)(Visit(context.id()));
                var template = (string)("<" + Visit(context.templateCall())) + ">";
                return(new Result()
                {
                    text = id.text + template, data = id.text + template, rootID = id.text
                });
            }
            var r = (Result)(Visit(context.expression()));

            return(new Result()
            {
                text = (new System.Text.StringBuilder().Append("(").Append(r.text).Append(")")).to_str(), data = r.data
            });
        }
Esempio n. 5
0
	public PrimaryExpressionContext primaryExpression() {
		PrimaryExpressionContext _localctx = new PrimaryExpressionContext(Context, State);
		EnterRule(_localctx, 12, RULE_primaryExpression);
		try {
			int _alt;
			State = 112;
			switch (TokenStream.La(1)) {
			case Identifier:
				_localctx = new IdentifierContext(_localctx);
				EnterOuterAlt(_localctx, 1);
				{
				State = 101; Match(Identifier);
				}
				break;
			case Constant:
				_localctx = new ConstantContext(_localctx);
				EnterOuterAlt(_localctx, 2);
				{
				State = 102; Match(Constant);
				}
				break;
			case StringLiteral:
				_localctx = new StringLiteralContext(_localctx);
				EnterOuterAlt(_localctx, 3);
				{
				State = 104;
				ErrorHandler.Sync(this);
				_alt = 1;
				do {
					switch (_alt) {
					case 1:
						{
						{
						State = 103; Match(StringLiteral);
						}
						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					State = 106;
					ErrorHandler.Sync(this);
					_alt = Interpreter.AdaptivePredict(TokenStream,6,Context);
				} while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber );
				}
				break;
			case LeftParen:
				_localctx = new ParenthesizedContext(_localctx);
				EnterOuterAlt(_localctx, 4);
				{
				State = 108; Match(LeftParen);
				State = 109; expression();
				State = 110; Match(RightParen);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			ErrorHandler.ReportError(this, re);
			ErrorHandler.Recover(this, re);
		}
		finally {
			ExitRule();
		}
		return _localctx;
	}
Esempio n. 6
0
		public ConstantContext(PrimaryExpressionContext context) { CopyFrom(context); }
Esempio n. 7
0
		public IdentifierContext(PrimaryExpressionContext context) { CopyFrom(context); }
Esempio n. 8
0
		public ParenthesizedContext(PrimaryExpressionContext context) { CopyFrom(context); }
Esempio n. 9
0
		public StringLiteralContext(PrimaryExpressionContext context) { CopyFrom(context); }
Esempio n. 10
0
		public virtual void CopyFrom(PrimaryExpressionContext context) {
			base.CopyFrom(context);
		}