Exemple #1
0
 public grammar(int g_ndfas, dfa[] g_dfa, labellist g_ll, int g_start)
 {
     this.g_ndfas = g_ndfas;
     this.g_dfa   = new dfaPtr(g_dfa, 0);
     this.g_ll    = g_ll;
     this.g_start = g_start;
 }
Exemple #2
0
        //20170403
        //#include "pgenheaders.h"
        //#include "grammar.h"
        //#include "node.h"
        //#include "token.h"
        //#include "parser.h"

//		static void fixdfa(grammar *, dfa *);
//		static void fixstate(grammar *, state *);

        public static void PyGrammar_AddAccelerators(grammar g)
        {
            dfaPtr d;
            int    i;

                #if _DEBUG
            fprintf(stderr, "Adding parser accelerators ...\n");
                #endif
            d = new dfaPtr(g.g_dfa);
            for (i = g.g_ndfas; --i >= 0; d.inc())
            {
                fixdfa(g, d[0]);
            }
            g.g_accel = 1;
                #if _DEBUG
            fprintf(stderr, "Done.\n");
                #endif
        }
Exemple #3
0
        public static void PyGrammar_RemoveAccelerators(grammar g)
        {
            dfaPtr d;
            int    i;

            g.g_accel = 0;
            d         = new dfaPtr(g.g_dfa);
            for (i = g.g_ndfas; --i >= 0; d.inc())
            {
                statePtr s;
                int      j;
                s = new statePtr(d[0].d_state);
                for (j = 0; j < d[0].d_nstates; j++, s.inc())
                {
                    if (null != s[0].s_accel)
                    {
                        PyMem_DEL(ref s[0].s_accel);
                    }
                    s[0].s_accel = null;
                }
            }
        }
Exemple #4
0
 public dfaPtr(dfaPtr ptr)
 {
 }