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

Reply via email to