public void AddRule(Rule r) { r.BuildInputVariables(); this.rules.Add(r); }
public Rule ParseLexicalStatement(string expression) { //IF blah THEN blah expression = expression.ToUpper(); expression = expression.Substring(3); int indexOfThen = expression.IndexOf("THEN") + 4; string inputSynt = expression.Substring(0, indexOfThen-4).TrimEnd(); Node inputNode = new Node(); inputNode = ParseInputSyntax(inputNode, inputSynt); expression = expression.Substring(indexOfThen); // output int isIndex = expression.IndexOf("IS"); string left = expression.Substring(0, isIndex - 1).Trim(); string right = expression.Substring(isIndex + 3).Trim(); Variable outputVar = new Variable(left); Condition cond = GetOutputConditionFromFis(outputVar, right); Rule r = new Rule(); r.InputClause = inputNode; r.OutputClause = new Clause(outputVar, cond); return r; }