예제 #1
0
        private void cm_doA2()
        {
            cLexem _lexem = cf_lisTokens[cf_lisTokens.Count - 2].cf_Value as cLexem;

            cf_leftLex.cm_AddChildLexem(_lexem as cLexem, true);
            cf_firstLex = _lexem;
        }
예제 #2
0
        private void cm_doA2()
        {
            cLexem _lexem = cf_lisTokens[cf_lisTokens.Count - 2].cf_Value as cLexem;

            if (!cf_leftLex.cm_AddChildLexem(null, _lexem as cLexem))
            {
                throw new cNotLL1Exception(_lexem, cf_leftLex, "Несколько продукций для " + cf_leftLex + " имеют направляющий символ " + _lexem);
            }
            cf_firstLex = _lexem;
        }
예제 #3
0
        public static cLexem cm_ExtendGrammatic(cLexem a_root)
        {
            cLexem _newRoot = cLexem.cm_GetLexem(" E'");

            _newRoot.cf_type = eLexType.NonTerminal;
            _newRoot.cm_AddChildLexem(a_root, true);
            //_newRoot.cm_AddChildLexem(cLexem.cc_StopLexem, false);
            return(_newRoot);
        }