Exemplo n.º 1
0
        public void Lock()
        {
            AssertIsNotLocked();

            DefineRule(RuleName.Implicit, new RepeatRule(this,
                                                         new OrRule(this, ImplicitNames
                                                                    .Select(_GetRule)
                                                                    .Where(r => r != null))));

            AttachAction(RuleName.Implicit, (n, r) => null);

            IsLocked = true;
        }
Exemplo n.º 2
0
        private void DefineToken(string name, Token token)
        {
            AssertIsNotLocked();

            tokens.Add(name, token);

            Rule rule = new TokenRule(this, token);

            if (!ImplicitNames.Contains(name))
            {
                rule = new NameRule(this, this, RuleName.Implicit).And(rule);
            }

            DefineRule(name, rule);
        }