public MainFunctionBuilder() { _mainFunctionRule = new MainFunctionRule { DataType = TerminalNodeBuilder.Of(Token.Int), Main = TerminalNodeBuilder.Of(Token.Main), LeftParenthesis = TerminalNodeBuilder.Of(Token.ParenthesisLeft), RightParenthesis = TerminalNodeBuilder.Of(Token.ParenthesisRight), FunctionBody = new FunctionBodyRule { LeftCurlyBracket = TerminalNodeBuilder.Of(Token.CurlyBracketLeft), RightCurlyBracket = TerminalNodeBuilder.Of(Token.CurlyBracketRight), ReturnStatement = new ReturnStatementRule { Return = TerminalNodeBuilder.Of(Token.Return), Expression = new ExpressionRule { Term = new TermRule { Number = new NumberRule { Number = TerminalNodeBuilder.Of(Token.ConstantNumber, "0") } } }, Semicolon = TerminalNodeBuilder.Of(Token.Semicolon) } } }; }
public ProgramRule(ICollection <FunctionStatementRule> functionStatements, MainFunctionRule mainFunction) { FunctionStatements = functionStatements; MainFunction = Guard.NonNull(() => mainFunction); }
public ProgramBuilder WithMain(MainFunctionRule mainFunctionRule) { _programRule.MainFunction = mainFunctionRule; return(this); }