/// <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("条件分岐行:余分なトークンがある"); }
internal IfStatement(IfStatementPrimitive token, ArgumentToken theArg) { ifToken = token; arg = theArg; }
internal IfStatement(IfStatementPrimitive token) { ifToken = token; }