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; }
//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 }
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; } } }
public dfaPtr(dfaPtr ptr) { }