示例#1
0
        //------------------------------------------------------------
        /// <summary>
        /// IndexExpression:
        ///   "[" SequenceExpression "]"
        /// </summary>
        /// <returns></returns>
        IndexExpression parseIndexExpression()
        {
            // "["
            if (!expectToken(Token.Kind.OpLBracket, ErrorKind.INDEX_EXPRESSION_LBRACKET_EXPECTED))
            {
                return(null);
            }

            // SequenceExpression
            SequenceExpression sequenceExpr = parseSequenceExpression();

            if (sequenceExpr == null)
            {
                return(null);
            }

            // "]"
            if (!expectToken(Token.Kind.OpRBracket, ErrorKind.INDEX_EXPRESSION_RBRACKET_EXPECTED))
            {
                return(null);
            }

            return(new IndexExpression(sequenceExpr));
        }
示例#2
0
 //------------------------------------------------------------
 // コンストラクタ。
 public IndexExpression(SequenceExpression aSequenceExpr)
 {
     mSequenceExpr = aSequenceExpr;
 }
示例#3
0
 //------------------------------------------------------------
 // コンストラクタ。
 public SequenceExpression(IExpression aTermExpr, SequenceExpression aNextExpr)
     : this(aTermExpr)
 {
     mNextExpr = aNextExpr;
 }
示例#4
0
 //------------------------------------------------------------
 // コンストラクタ。
 public FunctionCallExpression(SequenceExpression aSequenceExpr)
 {
     mSequenceExpr = aSequenceExpr;
 }