12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- Short description of Nim's modules
- -------------------------------------
- ============== ==========================================================
- Module Description
- ============== ==========================================================
- nim main module: parses the command line and calls
- `main.MainCommand`
- main implements the top-level command dispatching
- nimconf implements the config file reader
- syntaxes dispatcher for the different parsers and filters
- filter_tmpl standard template filter (``#? stdtempl``)
- lexbase buffer handling of the lexical analyser
- lexer lexical analyser
- parser Nim's parser
- renderer Nim code renderer (AST back to its textual form)
- options contains global and local compiler options
- ast type definitions of the abstract syntax tree (AST) and
- node constructors
- astalgo algorithms for containers of AST nodes; converting the
- AST to YAML; the symbol table
- passes implement the passes manager for passes over the AST
- trees some algorithms for nodes; this module is less important
- types module for traversing type graphs; also contain several
- helpers for dealing with types
- sigmatch contains the matching algorithm that is used for proc
- calls
- semexprs contains the semantic checking phase for expressions
- semstmts contains the semantic checking phase for statements
- semtypes contains the semantic checking phase for types
- seminst instantiation of generic procs and types
- semfold contains code to deal with constant folding
- semthreads deep program analysis for threads
- evals contains an AST interpreter for compile time evaluation
- pragmas semantic checking of pragmas
- idents implements a general mapping from identifiers to an internal
- representation (`PIdent`) that is used so that a simple
- id-comparison suffices to establish whether two Nim
- identifiers are equivalent
- ropes implements long strings represented as trees for
- lazy evaluation; used mainly by the code generators
- transf transformations on the AST that need to be done before
- code generation
- cgen main file of the C code generator
- ccgutils contains helpers for the C code generator
- ccgtypes the generator for C types
- ccgstmts the generator for statements
- ccgexprs the generator for expressions
- extccomp this module calls the C compiler and linker; interesting
- if you want to add support for a new C compiler
- ============== ==========================================================
|