-
Notifications
You must be signed in to change notification settings - Fork 2
Source layout
Leo White edited this page Feb 18, 2014
·
11 revisions
├── asmcomp
│ ├── amd64
│ ├── arm
│ ├── i386
│ ├── power
│ └── sparc
├── asmrun
├── boot
├── build
├── bytecomp
├── byterun
├── compilerlibs
├── config
├── debugger
├── driver
├── emacs
├── experimental
├── lex
├── man
├── ocamlbuild
├── ocamldoc
├── otherlibs
│ ├── bigarray
│ ├── dynlink
│ ├── graph
│ ├── num
│ ├── str
│ ├── systhreads
│ ├── threads
│ ├── unix
│ ├── win32graph
│ └── win32unix
├── parsing
├── stdlib
├── testsuite
├── tools
├── toplevel
├── typing
├── utils
└── yacc
Native-code compiler and linker
Native-code runtime library
Bootstrap compiler
Bytecode compiler and linker
Bytecode interpreter and runtime system
Autoconfiguration stuff
Source-level replay debugger
Driver code for the compilers
Lexer generator
Man pages
The OCamlBuild build system
Documentation generator
Several external libraries
Syntax analysis
- asttypes.mli: Utility types for the parse tree and typed parse tree
- lexer.mll / lexer.mli: The lexer
- location.ml / location.mli: The location type and utilities
-
longident.ml / longident.mli: The longident type (for e.g.
M.N.F(X).t
) and utilities - parse.ml / parse.mli: Entry points for the parser
- parser.mly: The parser
- parsetree.mli: The parsetree
- pprintast.ml / pprintast.mli: Pretty printer for the parsetree
- printast.ml / printast.mli: Debug printer for the parsetree
- syntaxerr.ml / syntaxerr.mli: Type and printer for syntax errors
Standard library
Various utilities
Interactive system
Typechecking
- annot.mli: Output ".annot" files
- btype.ml / btype.mli: Basic operations on core types
- cmi_format.ml / cmi_format.mli: The format of ".cmi" files
- cmt_format.ml / cmt_format.mli: The format of ".cmt" files
- ctype.ml / ctype.mli: Operations on core types (including expansion, unification, subtyping, etc.)
- datarepr.ml / datarepr.mli: Compute constructor and label descriptions from type declarations, determining their representation.
- envaux.ml / envaux.mli: Auxiliary operations on environments
- env.ml / env.mli: The environment
- ident.ml / ident.mli: Identifiers (unique names)
- includeclass.ml / includeclass.mli: Inclusion checks on class types
- includecore.ml / includecore.mli: Inclusion checks on core types
- includemod.ml / includemod.mli: Inclusion checks on module types
- mtype.ml / mtype.mli: Operations on module types
- oprint.ml / oprint.mli: Pretty printer for outcome trees
- outcometree.mli: Results displayed at the top level
- parmatch.ml / parmatch.mli: Exhaustivity checks for pattern matching
- path.ml / path.mli: Operations on paths (unique long identifiers)
- predef.ml / predef.mli: Defines the predefined types
- primitive.ml / primitive.mli: Operations on primitive (external) values
- printtyped.ml / printtyped.mli: Debug printer for the typed tree
- printtyp.ml / printtyp.mli: Pretty printer for types
- stypes.ml / stypes.mli: Recording and dumping (partial) type information for ".annot" files
- subst.ml / subst.mli: Path substitutions
- typeclass.ml / typeclass.mli: Type-checking of classes
- typecore.ml / typecore.mli: Type-checking of expressions and patterns
- typedecl.ml / typedecl.mli: Type-checking of declarations
- typedtreeIter.ml / typedtreeIter.mli: Iterator functor for the typed tree
- typedtreeMap.ml / typedtreeMap.mli: Map functor for the typed tree
- typedtree.ml / typedtree.mli: The typed tree
- typemod.ml / typemod.mli: Type-checking of modules
- types.ml / types.mli: The types
- typetexp.ml / typetexp.mli: Type-checking of type expressions
Utility libraries
Parser generator