|
Boost : |
From: Vladimir Prus (ghost_at_[hidden])
Date: 2001-06-13 09:22:52
Over the last few days I tried to find a better interface for automata
builder and it resulted in version 0.2. Main changes are in interface.
Persons curious to look at the code can find it at:
http://chronos.cs.msu.su/~ghost/MyDocuments/projects/lr_library/index.html
Description of interface:
There are three namespaces: Automata_builder, Grammar and Parser. First one
is automata builder proper, while others today are just helpers --- probably
they should be filled with more things in future.
Main goals for Automata_builder were:
- allow convenient access to all the numerous data that is generated
- allow to easily select algorithm variations or even completely replace
some of the algorithms.
Automata_builder is used like this:
Automata_builder::Grammar g;
// do something with g.
LR0_data data(g);
// LR0_data holds all data that can be generated when
// LR0 methods are used.
data.tables();
// Gets tables that are suitable for feeding parser with
It is possible to affect some stages:
compute_lookaheads_SLR1(data);
// explicitly use SLR(1) method
Or even write some custom code and plug it:
compute_tables_with_random_conflict_resolution(data);
Any comments?
-- Regards, Vladimir
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk