Esempio n. 1
0
        private void buildRule(BuildState state, p_Rule pRule)
        {
            state.PushBadLocation("bad");
            state.PushGoodLocation("good");
            checkBuilder.AppendFormat("public bool check{0}() {{", pRule.ruleName);
            obtainBuilder.AppendFormat("public p_{0} obtain{0}() {{", pRule.ruleName);
            classesBuilder.AppendFormat("public class p_{0} {{", pRule.ruleName);

            buildRuleExpression(state, pRule.RuleExpression);

            checkBuilder.Append(@"good:  

                                    symbolGenerator.RestoreState();
                                    return true;");
            checkBuilder.Append(@"bad:  

                                    symbolGenerator.PopState();
                                    return false;");


            checkBuilder.AppendLine("}\r\n\r\n\r\n\r\n");
            obtainBuilder.AppendLine("}\r\n\r\n\r\n\r\n");
            classesBuilder.AppendLine("}\r\n\r\n\r\n\r\n");

            state.PopGoodLocation();
            state.PopBadLocation();
        }
Esempio n. 2
0
        private void buildRule(BuildState state, p_Rule pRule)
        {
            state.PushBadLocation("bad");
            state.PushGoodLocation("good");
            checkBuilder.AppendFormat("public bool check{0}() {{", pRule.ruleName);
            obtainBuilder.AppendFormat("public p_{0} obtain{0}() {{", pRule.ruleName);
            classesBuilder.AppendFormat("public class p_{0} {{", pRule.ruleName);

            buildRuleExpression(state, pRule.RuleExpression);

            checkBuilder.Append(@"good:

                                    symbolGenerator.RestoreState();
                                    return true;");
            checkBuilder.Append(@"bad:

                                    symbolGenerator.PopState();
                                    return false;");

            checkBuilder.AppendLine("}\r\n\r\n\r\n\r\n");
            obtainBuilder.AppendLine("}\r\n\r\n\r\n\r\n");
            classesBuilder.AppendLine("}\r\n\r\n\r\n\r\n");

            state.PopGoodLocation();
            state.PopBadLocation();
        }
Esempio n. 3
0
        private p_Rule obtainRule()
        {
            p_Rule rule = new p_Rule();

            rule.ruleName = obtainIdentifier();
            Debug.Assert(symbolGenerator.Advance().isSymbol(":"));
            Debug.Assert(symbolGenerator.Advance().isSymbol("="));

            rule.RuleExpression = obtainRuleExpression();
            Debug.Assert(symbolGenerator.Advance().isSymbol(";"));

            return(rule);
        }
Esempio n. 4
0
        private p_Rule obtainRule()
        {
            p_Rule rule = new p_Rule();

            rule.ruleName = obtainIdentifier();
            Debug.Assert(symbolGenerator.Advance().isSymbol(":"));
            Debug.Assert(symbolGenerator.Advance().isSymbol("="));

            rule.RuleExpression = obtainRuleExpression();
            Debug.Assert(symbolGenerator.Advance().isSymbol(";"));

            return rule;
        }