Пример #1
0
        /// <summary>
        /// If,elseステートメントの開始
        /// </summary>
        /// <param defaultName="primitives"></param>
        /// <returns></returns>
        private static IfStatement readIf(TokenCollection stream)
        {
            IfStatementPrimitive token = stream.GetNextToken() as IfStatementPrimitive;

            if (token == null)
            {
                throw new HspLogicalLineException("条件分岐行:条件分岐プリミティブ以外からスタート");
            }

            //elseには式がない。
            if (stream.NextIsEndOfLine)
            {
                return(new IfStatement(token));
            }
            else
            {
                //式を読む。あまりが出なければOK
                ArgumentToken arg = CodeTokenFactory.ReadArgument(stream);
                if (stream.NextIsEndOfLine)
                {
                    return(new IfStatement(token, arg));
                }
            }
            throw new HspLogicalLineException("条件分岐行:余分なトークンがある");
        }
Пример #2
0
 internal IfStatement(IfStatementPrimitive token, ArgumentToken theArg)
 {
     ifToken = token;
     arg     = theArg;
 }
Пример #3
0
 internal IfStatement(IfStatementPrimitive token)
 {
     ifToken = token;
 }