public AstIntermediateInitializerCode(InitializerNode parseTree) { if (parseTree == null) throw new ArgumentNullException(); this.ParseTree = parseTree; }
protected virtual InitializerNode ParseInitializer() { // PARSE: <initializer definition> ::= [<temporaries>] [<statements>] InitializerNode result = new InitializerNode(); Token token = this.GetNextTokenxx(Preference.VerticalBar | Preference.NegativeSign); // PARSE: [<temporaries>] ParseTemporariesResult ptr = this.ParseTemporaries(result, token); // PARSE: <statements> token = this.GetNextTokenxx(Preference.NegativeSign); StatementNode statements = this.ParseStatement(result, token); // Should be done. token = this.GetNextTokenxx(Preference.Default); if (!(token is EofToken)) this.ReportParserError(result, SemanticErrors.UnexpectedCodeAfterInitializer, token); result.SetContents(ptr.LeftBar, ptr.Temporaries, ptr.RightBar, statements); return result; }