public static void InitGrammar() { //Program rule Grammar.Add(new GrammarReplaceRule(TokenEnum.Program, new CompositeToken { TokenEnum.ProgramName, TokenEnum.NewLine(), TokenEnum.String("var"), TokenEnum.DefList1, TokenEnum.NewLine(), TokenEnum.String("begin"), TokenEnum.StatementList1, TokenEnum.String("end") })); //Definition list DefinitionList(); //Statement list StatementList(); //Unlabeled operator UnlabeledOperator(); IdList(); //Expression FillExpression(); FillLogicalExpression(); }
private static void StatementList() { Grammar.Add(new GrammarReplaceRule(TokenEnum.StatementList, new CompositeToken { TokenEnum.StatementList, TokenEnum.NewLine(), TokenEnum.Statement })); Grammar.Add(new GrammarReplaceRule(TokenEnum.StatementList, new CompositeToken { TokenEnum.NewLine(), TokenEnum.Statement })); Grammar.Add(new GrammarReplaceRule(TokenEnum.Statement, new CompositeToken { TokenEnum.UnlabeledStatement })); Grammar.Add(new GrammarReplaceRule(TokenEnum.Statement, new CompositeToken { TokenEnum.Label(), TokenEnum.String(":"), TokenEnum.UnlabeledStatement })); Grammar.Add(new GrammarReplaceRule(TokenEnum.StatementList1, new CompositeToken { TokenEnum.StatementList, TokenEnum.NewLine() })); }