Example #1
0
 public void Parse(ExpressionParserHelper parseHelper)
 {
     if (parseHelper.At(BRACKETS_OPEN))
     {
         var token = parseHelper.Current;
         parseHelper.Expect(BRACKETS_OPEN);
         var brackets = new Brackets(_functionArgument, _arguments, _paramsArgument)
         {
             Token = token
         };
         parseHelper.Push(brackets);
         parseHelper.ParseExpression();
     }
     else
     {
         Brackets brackets;
         if (!parseHelper.PreviousWas(BRACKETS_OPEN))
         {
             parseHelper.Reduce(TYPE);
             var nested = parseHelper.Pop();
             parseHelper.Expect(nameof(BracketsParser), SIGNS);
             brackets = ((Brackets)parseHelper.Top);
             brackets.FillNext(nested);
         }
         else
         {
             brackets = ((Brackets)parseHelper.Top);
         }
         if (parseHelper.At(BRACKETS_CLOSE) && brackets.PartOfFunction)
         {
             FunctionParser.FillArguments(parseHelper);
         }
     }
 }
Example #2
0
 public void Parse(ExpressionParserHelper parseHelper)
 {
     if (parseHelper.At(BRACKETS_OPEN))
     {
         GuardPartOfPropertyAccess(parseHelper);
         var token = parseHelper.Current;
         parseHelper.Expect(BRACKETS_OPEN);
         var brackets = new SquareBrackets {
             Token = token
         };
         parseHelper.Push(brackets);
         parseHelper.ParseExpression();
     }
     else
     {
         parseHelper.Reduce(TYPE);
         var nested = parseHelper.Pop();
         parseHelper.Expect(nameof(SquareBracketsParser), BRACKETS_CLOSE);
         var brackets = ((SquareBrackets)parseHelper.Top);
         brackets.Fill(nested);
         PropertyParser.FillArguments(parseHelper);
     }
 }
Example #3
0
 public void Parse(ExpressionParserHelper parseHelper)
 {
     if (parseHelper.At(BRACKETS_OPEN))
     {
         var token = parseHelper.Current;
         parseHelper.Expect(BRACKETS_OPEN);
         var brackets = new Brackets(_functionArgument, _arguments) {Token = token};
         parseHelper.Push(brackets);
         parseHelper.ParseExpression();
     }
     else
     {
         parseHelper.Reduce(TYPE);
         var nested = parseHelper.Pop();
         parseHelper.Expect(nameof(BracketsParser), BRACKETS_CLOSE, BRACKETS_COMMA);
         var brackets = ((Brackets) parseHelper.Top);
         brackets.FillNext(nested);
         if (parseHelper.At(BRACKETS_CLOSE) && brackets.PartOfFunction)
         {
             FunctionParser.FillArguments(parseHelper);
         }
     }
 }