GetVar() public method

public GetVar ( string i ) : long
i string
return long
Ejemplo n.º 1
0
        private void ParsePluralFormsHeader()
        {
            string pluralForms;
            if (!Headers.TryGetValue(PluralFormsHeaderKey, out pluralForms)) return;

            Script script = null;
            try
            {
                var scanner = new ExpressionEvaluator.Scanner();
                scanner.SetSource(pluralForms, 0);
                var parser = new ExpressionEvaluator.Parser(scanner);

                parser.Parse();

                script = parser.Script;
            } catch (Exception e)
            {
                throw new GettextException("Error parsing the plural forms header", e);
            }

            if (script == null) return;

            var assignmentNplurals = script.Assignments.SingleOrDefault(x => x.Var == "nplurals");
            var assignmentN = script.Assignments.SingleOrDefault(x => x.Var == "plural");
            if (assignmentNplurals == null || assignmentN == null) return;

            {
                var state = new ExpressionState();
                assignmentNplurals.Execute(state);
                NPlurals = (int) state.GetVar("nplurals");
            }

            {
                PluralExpression = assignmentN;

                GetPluralIndex = n =>
                                     {
                                         var state = new ExpressionState();
                                         state.SetVar("nplurals", NPlurals);
                                         state.SetVar("n", n);
                                         assignmentN.Execute(state);
                                         return (int) state.GetVar("plural");
                                     };
            }
        }
Ejemplo n.º 2
0
 public override long Execute(ExpressionState state)
 {
     return state.GetVar(id);
 }