Parse() public method

Parses the input string that contains a plural rule formula and generates an abstract syntax tree.
public Parse ( string input ) : Token
input string Input string.
return Token
Exemplo n.º 1
0
        public void ParseCompleteRulesTest()
        {
            var parser = new AstTokenParser();
            foreach (object[] mapping in GetParseCompleteRulesTestData())
            {
                var astRoot = parser.Parse((string)mapping[0]);
                var rule = new AstPluralRule(100, astRoot);
                var expectedSeq = (string)mapping[1];

                for (int i = 0; i < 200; i++)
                {
                    var expected = int.Parse(expectedSeq[i].ToString());
                    Assert.Equal(expected, rule.Evaluate(i));
                }
            }
        }
Exemplo n.º 2
0
        public void CompileCompleteRulesTest()
        {
            var parser = new AstTokenParser();
            var compiler = new PluralRuleCompiler();
            foreach (object[] mapping in GetParseCompleteRulesTestData())
            {
                var astRoot = parser.Parse((string)mapping[0]);
                var expectedSeq = (string)mapping[1];
                var dynamicMethod = (PluralRuleEvaluatorDelegate)compiler.CompileToDynamicMethod(astRoot, typeof(PluralRuleEvaluatorDelegate));

                for (int i = 0; i < 200; i++)
                {
                    var expected = int.Parse(expectedSeq[i].ToString());
                    Assert.Equal(expected, dynamicMethod(i));
                }
            }
        }
Exemplo n.º 3
0
 public void ParseRulesTest()
 {
     var parser = new AstTokenParser();
     foreach (object[] mapping in GetParseRulesTestData())
     {
         var astRoot = parser.Parse((string)mapping[1]);
         var rule = new AstPluralRule(100, astRoot);
         Assert.Equal((int)mapping[2], rule.Evaluate(0));
     }
 }
Exemplo n.º 4
0
        public void CompileRulesTest()
        {
            var parser = new AstTokenParser();
            var compiler = new PluralRuleCompiler();
            foreach (object[] mapping in GetParseRulesTestData())
            {
                var astRoot = parser.Parse((string)mapping[1]);
                var dynamicMethod = (PluralRuleEvaluatorDelegate)compiler.CompileToDynamicMethod(astRoot, typeof(PluralRuleEvaluatorDelegate));

                Assert.Equal((int)mapping[2], dynamicMethod(0));
            }
        }