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 say 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 ============== ==========================================================