lh-l4v/tools/c-parser
Michael Norrish 6b5d1b5e5d Allow empty top-level declarations, consisting of bare semi 2016-09-09 14:14:32 +10:00
..
Simpl Remove time limits from Isabelle ROOT files. 2016-02-29 14:52:37 +11:00
doc Import release snapshot. 2014-07-14 21:32:44 +02:00
recursive_records c-parser: CParser session now builds 2016-02-11 11:15:59 +11:00
standalone-parser CParser multi_arch_refactor: build standalone parser in dir named after arch 2016-09-02 23:38:40 +10:00
testfiles trivial: remove debug tracing code 2016-09-02 23:38:40 +10:00
tools Delete trailing whitespace in mlyacc sources 2015-11-12 09:53:29 +11:00
umm_heap CParser multi_arch_refactor: add license headers to new files 2016-08-31 16:25:46 +10:00
.gitignore Export file containing varname munging info 2016-02-15 16:17:19 +11:00
Absyn-CType.ML c-parser: fix architecture refactor bugs arising 2016-05-10 15:59:00 +10:00
Absyn-Expr.ML Standalone parser now handles large enum consts 2015-04-29 12:04:22 +10:00
Absyn-Serial.ML Tweak serial code, don't reference print. 2016-07-05 17:37:14 +10:00
Absyn-StmtDecl.ML Handle local extern declarations 2015-03-23 15:11:57 +11:00
Absyn.ML Import release snapshot. 2014-07-14 21:32:44 +02:00
Binaryset.ML Import release snapshot. 2014-07-14 21:32:44 +02:00
CProof.thy c-parser: multi_arch_refactor: merge with master 2016-08-15 11:30:24 +10:00
CTranslation.thy c-parser: fix list sorting to use Isabelle code 2016-08-17 10:38:21 +10:00
Feedback.ML Import release snapshot. 2014-07-14 21:32:44 +02:00
FunctionalRecordUpdate.ML Export file containing varname munging info 2016-02-15 16:17:19 +11:00
General.ML Import release snapshot. 2014-07-14 21:32:44 +02:00
HPInter.ML Modifies proofs partially working 2015-11-19 11:27:05 +11:00
INSTALL Isabelle 2013-2 -> 2014 in docs 2014-10-21 20:08:50 +11:00
IndirectCalls.thy Import release snapshot. 2014-07-14 21:32:44 +02:00
IsaMakefile CParser multi_arch_refactor: fix tokenizer build 2016-09-01 12:35:33 +10:00
MANIFEST Finish serialisation code for AST. 2016-07-05 17:37:14 +10:00
MLton-LICENSE Import release snapshot. 2014-07-14 21:32:44 +02:00
MString.ML license-tool: missing license headers + .licenseignore [VER-551] 2016-07-14 16:34:31 +10:00
Makefile Import release snapshot. 2014-07-14 21:32:44 +02:00
MemoryModelExtras-sig.ML Import release snapshot. 2014-07-14 21:32:44 +02:00
MemoryModelExtras.ML Import release snapshot. 2014-07-14 21:32:44 +02:00
PackedTypes.thy c-parser: multi_arch_refactor: merge with master 2016-08-15 11:30:24 +10:00
PrettyProgs.thy re-import Simpl from AFP 2015-04-17 14:19:15 +01:00
README c-parser: make munge_info available from standalone-parser 2016-06-14 12:39:03 +10:00
RELEASES Import release snapshot. 2014-07-14 21:32:44 +02:00
ROOT re-import Simpl from AFP 2015-04-17 14:19:15 +01:00
Region.ML Import release snapshot. 2014-07-14 21:32:44 +02:00
RegionExtras.ML Import release snapshot. 2014-07-14 21:32:44 +02:00
SourceFile.ML Import release snapshot. 2014-07-14 21:32:44 +02:00
SourcePos.ML Import release snapshot. 2014-07-14 21:32:44 +02:00
StaticFun.thy start work on Isabelle 2015 update 2015-04-17 16:19:32 +01:00
StrictC.grm Allow empty top-level declarations, consisting of bare semi 2016-09-09 14:14:32 +10:00
StrictC.grm.sig license-tool: .licenseignore update + some fixes [VER-551] 2016-07-20 18:01:35 +10:00
StrictC.grm.sml Allow empty top-level declarations, consisting of bare semi 2016-09-09 14:14:32 +10:00
StrictC.lex Refactoring as a prelude to handling static/extern 2015-03-17 16:42:46 +11:00
StrictC.lex.sml poll: Added new syscall for polling async endpoints (non-blocking wait) 2015-10-21 14:24:49 +11:00
StrictCParser.ML Handle cpp in both standalone and Isabelle parsers 2015-04-10 14:51:36 +10:00
Target-generic32.ML Import release snapshot. 2014-07-14 21:32:44 +02:00
TargetNumbers-sig.ML c-parser: fix architecture refactor bugs arising 2016-05-10 15:59:00 +10:00
UMM_Proofs.ML Remove Isabelle warnings in ML 2015-11-09 14:55:47 +11:00
UMM_termstypes.ML Import release snapshot. 2014-07-14 21:32:44 +02:00
basics.ML Properly fix JIRA VER-439 2015-04-09 15:09:29 +10:00
calculate_state.ML word_lib: adjust theory dependencies 2016-05-16 21:11:40 +10:00
complit.ML Import release snapshot. 2014-07-14 21:32:44 +02:00
expression_translation.ML c-parser: CParser session now builds 2016-02-11 11:15:59 +11:00
expression_typing.ML Import release snapshot. 2014-07-14 21:32:44 +02:00
globalmakevars adjust isabelle paths for standalone `make` 2014-07-27 20:25:04 +02:00
heapstatetype.ML C-Parser 2015 update 2015-05-02 21:43:17 +02:00
hp_termstypes.ML Port AutoCorres to Isabelle 2014-RC0 2014-08-08 17:29:54 +10:00
isa_termstypes.ML Deal with compiler warnings in isa_termstypes.ML 2015-11-12 10:01:25 +11:00
isar_install.ML Export file containing varname munging info 2016-02-15 16:17:19 +11:00
mkrelease license-tool: missing license headers + .licenseignore [VER-551] 2016-07-14 16:34:31 +10:00
modifies_proofs.ML Modifies proofs partially working 2015-11-19 11:27:05 +11:00
name_generation.ML Properly fix JIRA VER-439 2015-04-09 15:09:29 +10:00
openUnsynch.ML Import release snapshot. 2014-07-14 21:32:44 +02:00
program_analysis.ML Allow use of previous enum values in enums. 2016-09-02 13:58:57 +10:00
smlnj-license.html Import release snapshot. 2014-07-14 21:32:44 +02:00
static-fun.ML more Isabelle2015 update; AInvs up to (excluding) Syscall_AI 2015-04-18 21:51:26 +01:00
stmt_translation.ML C-Parser 2015 update 2015-05-02 21:43:17 +02:00
syntax_transforms.ML Properly fix JIRA VER-439 2015-04-09 15:09:29 +10:00
termstypes-sig.ML Properly fix JIRA VER-439 2015-04-09 15:09:29 +10:00
termstypes.ML c-parser: multi_arch_refactor: merge with master 2016-08-15 11:30:24 +10:00
topo_sort.ML Remove Isabelle warnings in ML 2015-11-09 14:55:47 +11:00
use.ML Import release snapshot. 2014-07-14 21:32:44 +02:00

README

#
# Copyright 2014, NICTA
#
# This software may be distributed and modified according to the terms of
# the BSD 2-Clause license. Note that NO WARRANTY is provided.
# See "LICENSE_BSD2.txt" for details.
#
# @TAG(NICTA_BSD)
#

This is the NICTA StrictC translation tool.

To install, see the file INSTALL in the src/c-parser directory.

To use:

1. Use the heap CParser that is created by installation
2. Import the theory CTranslation
3. Load ('install') C files into your theories with the Isar command
   install_C_file.

See many examples in the testfiles directory.  For example,
breakcontinue.thy is a fairly involved demonstration of doing things
the hard way.

----------------------------------------------------------------------
The translation tool builds on various open source projects by others.

1. Norbert Schirmer's Simpl language and associated VCG tool.

   Sources for this are found in the Simpl/ directory.  The
   code is covered by an LGPL licence.

   See http://afp.sourceforge.net/entries/Simpl.shtml

2. Code from SML/NJ:
   - an implementation of binary sets (Binaryset.ML)
   - the mllex and mlyacc tools (tools/{mllex,mlyacc})
   - command-line option parsing (standalone-parser/GetOpt)

   This code is covered by SML/NJ's BSD-ish licence.

   See http://www.smlnj.org

3. Code from the mlton compiler:
   - regions during lexing and parsing (Region.ML, SourceFile.ML and
     SourcePos.ML)

   This code is governed by a BSD licence.

   See http://mlton.org