예제 #1
0
 void CommonArrayExpression(FunctionCallPart part)
 {
     Expect(53);
     part.SetStartPoint(t, false);
     if (StartOf(4))
     {
         FunctionCallPart elementPart = new FunctionCallPart();
         CommonExpression(elementPart);
         part.AddArgumentPart(elementPart);
         while (la.kind == 54)
         {
             Get();
             elementPart = new FunctionCallPart();
             CommonExpression(elementPart);
             part.AddArgumentPart(elementPart);
         }
     }
     Expect(55);
     part.SetEndPoint(t, true);
 }
예제 #2
0
        void CommonArguments(FunctionCallPart part)
        {
            Expect(9);
            part.SetStartPoint(t, false);
            part.SetEndPoint(la, true);
            System.Drawing.Point openBracket = PointFromToken(t, false);

            if (StartOf(4))
            {
                FunctionCallPart parentCallPart = part;
                part = new FunctionCallPart();
                part.SetStartPoint(t, false);

                CommonExpression(part);
                part.SetEndPoint(t, false);
                parentCallPart.AddArgumentPart(part);
                part = parentCallPart;

                while (WeakSeparator(54, 4, 5))
                {
                    parentCallPart = part;
                    part           = new FunctionCallPart();
                    part.SetStartPoint(t, false);

                    CommonExpression(part);
                    part.SetEndPoint(la, true);
                    parentCallPart.AddArgumentPart(part);
                    part = parentCallPart;
                }
            }
            if (part.HasArgument == false)
            {
                // See "AddDefaultArgument" for details.
                System.Drawing.Point closeBracket = PointFromToken(la, true);
                part.AddDefaultArgument(openBracket, closeBracket);
            }

            Expect(10);
            part.SetEndPoint(t, true);
        }
예제 #3
0
 void CommonNameReference(FunctionCallPart part)
 {
     if (la.kind == 1)
     {
         CommonFunctionCall(part);
     }
     else if (la.kind == 53)
     {
         CommonArrayExpression(part);
     }
     else
     {
         SynErr(63);
     }
     if (la.kind == 7)
     {
         Get();
         part.AppendIdentifier(t); part.SetEndPoint(t, false);
         if (StartOf(4))
         {
             CommonExpression(part);
             part.SetEndPoint(t, false);
         }
         Expect(8);
         part.AppendIdentifier(t); part.SetEndPoint(t, false);
         while (la.kind == 7)
         {
             Get();
             part.AppendIdentifier(t); part.SetEndPoint(t, false);
             if (StartOf(4))
             {
                 CommonExpression(part);
                 part.SetEndPoint(t, false);
             }
             Expect(8);
             part.AppendIdentifier(t); part.SetEndPoint(t, false);
         }
     }
 }