示例#1
0
 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)
             }
         }
     };
 }
示例#2
0
 public ProgramRule(ICollection <FunctionStatementRule> functionStatements, MainFunctionRule mainFunction)
 {
     FunctionStatements = functionStatements;
     MainFunction       = Guard.NonNull(() => mainFunction);
 }
示例#3
0
 public ProgramBuilder WithMain(MainFunctionRule mainFunctionRule)
 {
     _programRule.MainFunction = mainFunctionRule;
     return(this);
 }