On 17/02/2011, at 2:21 PM, john skaller wrote: > OMG .. not believing it ...
Actually it is not so simple: compilation_unit: | graminit top_statements ENDMARKER { That graminit non-terminal automatically grabs the grammar out of local data and rebuilds the automaton .. :) It does this on EVERY parse (because it is the head of compilation unit .. :) This is basically how the grammar extensions are currently propagated from the auto-imports. Note, it does this for every grammar file as well! So when you build a felix program, which includes say 10 files, and the grammar is say 8 files, you have 88 builds of the automaton happening (excluding any auto-imports). This is why binding the library takes SOOOO long (because then you have 30 library files which are all processed the same way, so thats 30 x 88 automaton builds .. :) -- john skaller skal...@users.sourceforge.net ------------------------------------------------------------------------------ The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE: Pinpoint memory and threading errors before they happen. Find and fix more than 250 security defects in the development cycle. Locate bottlenecks in serial and parallel code that limit performance. http://p.sf.net/sfu/intel-dev2devfeb _______________________________________________ Felix-language mailing list Felix-language@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/felix-language