예제 #1
0
 public void AddRule(Rule r)
 {
     r.BuildInputVariables();
     this.rules.Add(r);
 }
예제 #2
0
파일: Parser.cs 프로젝트: stefan-j/FuzzyNet
        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;
        }