Esempio n. 1
0
        public ITreeNode Parse(Grammer grammer, IInput input, IGrammerRuleHandler ruleHandler)
        {
            States states = States.BuildStates(grammer);

            input.Parse();

            Stack stack = new Stack();

            TreeNodeStack treeNodeStack = new TreeNodeStack();

            ruleHandler.TreeNodeStack = treeNodeStack;

            IAction action = states.GetAction(stack.Top(), input.Get());
            while(!action.GetType().Equals(typeof(Accept))){
                action.Do(input,stack,ruleHandler);
                action = states.GetAction(stack.Top(),input.Get());
            }

            return treeNodeStack.Pop();
        }
Esempio n. 2
0
 public void Do(IInput input, Stack stack, IGrammerRuleHandler ruleHandler)
 {
 }
Esempio n. 3
0
 public void Do(IInput input, Stack stack, IGrammerRuleHandler ruleHandler)
 {
     stack.Push(stateId);
 }