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(); }
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); }
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; }