Commit bf5c8f49 authored by Pierre Brandone's avatar Pierre Brandone
Browse files

Resolve "Mention all src/parse files"

parent 54ca627b
Pipeline #32724 passed with stage
in 45 seconds
......@@ -3,28 +3,89 @@
The :code:`src/parse` Directory
-------------------------------
Namespace :code:`parse`. Delivered during TC-1.
Namespace :code:`parse`. Delivered during TC-1 and TC-2.
**File: libparse.hh (src/ast/)**
**File: local.am**
The interface of the :code:`parse` module. It exports the :code:`parse` procedure and wrappers around it.
This is a Makefile relative to the ``parse/`` directory. It is responsible
for the generation of the scanner and parser, the creation of the ``libparse``
library containing everything exported from the ``parse`` module, and
the linkage of the directory's unit tests in the test-suite.
**File: scantiger.ll (src/parse/)**
The scanner.
**File: fwd.hh**
**File: parsetiger.yy (src/parse/)**
Forward declarations for the parse module.
The parser.
**File: libparse.{cc|hh}**
**File: tiger-driver.{hh|hxx} (src/parse/)**
Functions and variables exported by the parse module such as the
:code:`parse` procedure and wrappers around it.
Driver implementation for AST creation and deletion
**File: tasks.{cc|hh}**
**File: position.hh (src/ast/)**
Tasks related to the ``Parse`` module (See: :ref:`src/task`).
Keeping track of a point (cursor) in a file.
**File: parsetiger.yy**
**File: location.hh (src/ast/)**
Bison directives to describe our grammar and our parser.
Keeping track of a range (two cursors) in a (or two) file.
**File: parsetiger.{cc|hh}**
The generated parser.
**File: parsetiger.{output|xml|html}**
Generated reports on the parser automaton. Contains tokens, states,
conflicts and counter-examples. The ``xml`` is used to generate the ``html``
which is easier to read and navigate.
**File: parsetiger.stamp**
Generated stamp used by ``bison++.in`` to avoid useless regeneration and
gain time (See :ref:`build-aux`).
**File: scantiger.ll**
Flex directives to describe our tokens and our scanner.
**File: scantiger.{cc|hh}**
The generated scanner.
**File: position.hh**
Keeps track of a point (cursor) in a file. It is generated by bison.
**File: location.hh**
Keeps track of a range (two cursors) in a (or two) file. It is generated by
bison.
**File: metavar-map.{hh|hxx}**
Maps metavariables with AST nodes. Works in pair with tweasts.
**File: tweast.{cc|hh}**
TWEAST stands for ``Text With Embedded AST``. It works in pair with
``metavarmap.{hh|hxx}`` and permits to use a string with AST nodes (stored as
metavariables) as a parser input.
Some files are given at TC-2.
**File: tiger-driver.{hh|hxx}**
Given at TC-2. It is a driver containing methods for AST nodes creation
and deletion.
**File: prelude.cc**
Given at TC-2. It contains the builtin primitives of Tiger as a string. They
will be inserted before the input code using a tweast if ``--no-prelude`` nor
``-X`` is activated.
**File: test-{parse|tweast}.cc**
Given at TC-2. Unit tests.
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment