History log of /seL4-l4v-10.1.1/l4v/tools/c-parser/standalone-parser/main.sml
Revision Date Author Comments
# 4b2c8123 07-Mar-2018 Thomas Sewell <Thomas.Sewell@data61.csiro.au>

c-parser: VER-881: process more function calls.

Two kinds of function calls were escaping the analysis. The first is simple,
the ReturnFnCall statement type, which was a silly omission from before.

Function calls inside initialiser statements are a more difficult problem.
The simplest solution was to move the VER-881 calculation into a
post-processing phase once those function calls have been moved to statement
positions.


# f35caa8d 05-Feb-2018 Thomas Sewell <Thomas.Sewell@data61.csiro.au>

JIRA VER-881: avoid complex call lvals.

This scans for statement-level function calls which will have complex
lvalue translations, either because their lvalues are compound
expressions or because their function return type will be promoted to
be stored. It treats them like expression-level function calls, with
an additional call statement added (saving to a ret_ variable) and
the complex lvalue step treated like an assignment.


# 5a367ea7 05-Dec-2016 Thomas Sewell <Thomas.Sewell@nicta.com.au>

Standalone C parser: scan for unhandled ASM.

Adds an additional analysis option to the external C parser. This
will report about any asm statements that were encountered and could
not be properly handled.

[NO_PROOF]


# 6991fab7 11-Jul-2016 Alejandro Gomez-Londono <alejandro.gomez@nicta.com.au>

c-parser: allow_underscore_idents flag added + examples [VER-619][NO_PROOF]


# 50ab074d 04-Jul-2016 Thomas Sewell <Thomas.Sewell@nicta.com.au>

Tweak serial code, don't reference print.

The function print isn't in scope in the Isabelle environment.


# 20c50e46 04-Jul-2016 Thomas Sewell <Thomas.Sewell@nicta.com.au>

Finish serialisation code for AST.


# 0490bcba 04-Jul-2016 Thomas Sewell <Thomas.Sewell@nicta.com.au>

Start of AST-dump analysis for c-parser.

Give the standalone c-parser the facility to dump out its internal AST. Only
half finished, I got bored writing serialisers for the many syntax datatypes.

There has been some discussion about how to check whether an seL4 change
impacts verification. My thought was that the obvious thing to check is the
C-parser's AST. If this is unchanged, then further analyses must be unchanged.


# a344d156 13-Jun-2016 Michael Norrish <Michael.Norrish@nicta.com.au>

c-parser: make munge_info available from standalone-parser

Specification of file to emit to is via command-line switch. Take the
opportunity to make comand-line processing be done via GetOpt library.

JIRA VER-473


# 6b06652d 16-Feb-2016 Michael Norrish <Michael.Norrish@nicta.com.au>

Fix standalone parser in light of 344ed539


# 9827e781 09-Apr-2015 Michael Norrish <michael.norrish@nicta.com.au>

Handle cpp in both standalone and Isabelle parsers

Japheth's recent change (6f7c660cb) to error-reporting for the latter
broke the former. Refactor code so that old and new code can coexist.
Would just use Japheth's code in the purely SML version too, but it uses
Isabelle/ML libraries that I can't be bothered to recreate in SML.


# cc996ca9 08-Apr-2015 Michael Norrish <michael.norrish@nicta.com.au>

Properly fix JIRA VER-439

The handling of local static variables is now part of a general
improvement in the handling of all the "munging" that the parser does.

*Munging* is the process of renaming variables so that Isabelle can cope
with them. There are at least three different forms of munging at the
moment:

- static locals get munged so that multiple static locals (which have to
be treated as globals) can co-exist with the same source name.
- local variables of the same source name but different types have to be
able to co-exist
- variables with legitimate C names but illegal Isabelle names have to
be allowed

The new structure MString implements an opaque version of string
designed to make it clear to the typechecker that certain strings are
"munged".


# 9149fe41 27-Jan-2015 Michael Norrish <michael.norrish@nicta.com.au>

New option to standalone parser to just test the C grammar.

Without even typechecking, none of the later phases of the analysis
get run.


# 72d54eeb 21-Jan-2015 Michael Norrish <michael.norrish@nicta.com.au>

Allow user to control path to C preprocessor (or not use it entirely).

As per example, syntax is

declare [[cpp_path="path to file"]]

If the empty string is used as the value, then no preprocessor will be
called.

The standalone parser has also been adjusted so that you can it with

--cpp=path

or

--nocpp

options.

Closes JIRA issue VER-337


# 2a03e81d 14-Jul-2014 Gerwin Klein <gerwin.klein@nicta.com.au>

Import release snapshot.