Files in the top-level directory in any check-in
- .fossil-settings
- bench
- bin
- bootstrap
- c
- doc
- doc.1
- embedded
- engine
- export
- gen-common
- gen-format
- generic
- languages
- multi-stop
- rtc
- runtime-c
- runtime-tcl
- slif
- slif-container
- slif-literal
- slif-literal-parser
- slif-parser
- slif-semantics
- tests
- tools
- unicode
- unidata
- util
- WORK
- APIS.txt
- ASBR_baseline
- ASBR_baseline.csv
- ASBR_u8c_K
- ASBR_u8c_K.csv
- ASBR_u8c_ns_merge
- ASBR_u8c_ns_merge.csv
- ASBR_u8c_rewrite
- ASBR_u8c_rewrite.csv
- ASBR_u8r_rewrite
- ASBR_u8r_rewrite.csv
- ASBR_u8s_rewrite
- ASBR_u8s_rewrite.csv
- build.tcl
- c_bocage.tcl
- c_cc_objtype.tcl
- c_context.tcl
- c_errors.tcl
- c_events.tcl
- c_grammar.tcl
- c_recognizer.tcl
- c_steps.tcl
- c_support.tcl
- c_typeconv.tcl
- c_unicode.tcl
- c_util.tcl
- gen.tcl
- marpa.tcl
- p_engine.tcl
- p_gate.tcl
- p_grammar.tcl
- p_inbound.tcl
- p_lexer.tcl
- p_location.tcl
- p_parser.tcl
- p_semcore.tcl
- p_semstd.tcl
- p_semstore.tcl
- p_support.tcl
- p_unicode.tcl
- README.md
- s_atom.tcl
- s_attr.tcl
- s_bnf.tcl
- s_cglobalattr.tcl
- s_character.tcl
- s_charclass.tcl
- s_clexsemattr.tcl
- s_container.tcl
- s_g1grammar.tcl
- s_grammar.tcl
- s_id.tcl
- s_l0grammar.tcl
- s_literal_util.tcl
- s_parser.tcl
- s_precedence.tcl
- s_quantified.tcl
- s_rule.tcl
- s_sem_context.tcl
- s_sem_debug.tcl
- s_sem_defaults.tcl
- s_sem_fixup.tcl
- s_sem_flags.tcl
- s_sem_literal.tcl
- s_sem_locations.tcl
- s_sem_singleton.tcl
- s_sem_start.tcl
- s_sem_state.tcl
- s_sem_symbols.tcl
- s_semantics.tcl
- s_symbol.tcl
- sc_alter.tcl
- sc_atom.tcl
- sc_atom_character.tcl
- sc_atom_charclass.tcl
- sc_atom_namedclass.tcl
- sc_atom_negcclass.tcl
- sc_atom_range.tcl
- sc_atom_string.tcl
- sc_atom_terminal.tcl
- sc_attr_global.tcl
- sc_attr_lexsem.tcl
- sc_attr_prio_g1.tcl
- sc_attr_prio_l0.tcl
- sc_attr_quant_g1.tcl
- sc_attr_quant_l0.tcl
- sc_attribute.tcl
- sc_grammar.tcl
- sc_grammar_g1.tcl
- sc_grammar_l0.tcl
- sc_priority.tcl
- sc_priority_g1.tcl
- sc_priority_l0.tcl
- sc_quantified.tcl
- sc_quantified_g1.tcl
- sc_quantified_l0.tcl
- sc_serdes.tcl
- slif-adverbs.md
- slif-literal.tcl
- slif-precedence.tcl
- u_sequencing.tcl
Setup
All the various blocks of related files are collected in their own directories.
Low-level wrapper around libmarpa, bringing the API into the script level as is. See
c/
.A parsing runtime implemented in Tcl, on top of the low-level wrapper. See
runtime-tcl/
.A parsing runtime implemented in C, on top of libmarpa. This and the other runtime share the general architecture, making problems in one a problem for the other, and fixes apply to both too. See
runtime-c/
.A parser implementing the SLIF meta grammar. See
slif-parser
. Generated from the SLIF meta grammar. Currently based on the C runtime. Basing it on the Tcl runtime works as well, just runs slower. Seeslif-parser/
.A container to hold grammars specified via SLIF. See
slif-container/
.The semantics to translate a SLIF AST coming out of the
slif-parser
into a series of instructions for aslif-container
which stores the grammar encoded in the AST in the container. Seeslif-semantics/
.Support for generators, technically still part of the SLIF support, a package to rewrite a set of precedenced priority rules into a new set where the precedences are encoded in the structure of the new rules. See
slif-precedence.tcl
.Support for generators, technically still part of the SLIF support, a package to rewrite literals into simpler forms (normalization and reduction). Former keeps literal-ness, latter can break literals apart into sets of rules. See
slif-literal.tcl
.Configuration and dispatcher core for code generators. See
gen.tcl
.Several code generator packages accessible from the generator core. See
gen-formats/
. The code generators are able to generate parsers and lexers using either Tcl or C runtime, and pre-loaded containers, readable and compact.Several packages shared between code generators. See
gen-common/
.General utility package. See
util/
.Utility package specific to unicode functionality. See
unicode/
.Supporting code to ingest unicode data tables, and the tables we use. See
tools/
andunidata/
.The SLIF meta grammar and tools to regenerate the
marpa-slif-parser/
. Seebootstrap/
.A generator application using all the pieces. See
bin/
.Tests. See
tests/
.Documentation. See
doc/
anddoc.1/
. This part is in need of cleanup and proper writeup.Manual benchmarks in
bench/
(Not based on tclbench, tough they should be made to).
After building the marpa package a directory generated
will contain
the output of the tools
on the unidata
tables. This is a cache
directory which can be blown away, the build will regenerate it as
needed. The information in the files becomes part of the unicode
package.