lh-l4v/tools/c-parser
Matthew Brecknell e263d4e7cd c-parser: improve support for 64-bit platforms
* Correct 64-bit pointer alignment.
* Consistently use 'addr' type alias for pointer values.
2017-04-03 14:44:17 +10:00
..
Simpl Isabelle2016-1: update Simpl 2017-01-05 14:21:12 +11:00
doc Import release snapshot. 2014-07-14 21:32:44 +02:00
recursive_records Isabelle2016-1: update to new ML API 2017-01-05 14:26:14 +11:00
standalone-parser Munge test: Support for multi Arch CSpec 2017-04-03 13:21:00 +10:00
testfiles licenses: Updated licenses added from x64 backport 2017-02-28 12:26:19 +11:00
tools Delete trailing whitespace in mlyacc sources 2015-11-12 09:53:29 +11:00
umm_heap c-parser: improve support for 64-bit platforms 2017-04-03 14:44:17 +10:00
.gitignore CParser multi_arch_refactor: Adding support for ARM_HYP 2017-03-10 11:10:24 +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 Standalone C parser: scan for unhandled ASM. 2016-12-06 16:01:23 +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 Add a facility for ignoring complex asm. 2016-12-01 17:08:00 +11:00
CTranslation.thy Isabelle2016-1: configure c-parser with faster string comparisons 2017-01-05 14:27:44 +11: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 Isabelle2016-1: update to new ML API 2017-01-05 14:26:14 +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 backport changes to ARM proofs from X64 work in progress 2017-01-27 08:31:07 +11: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 Isabelle2016-1: update references to renamed constants and facts 2017-01-05 14:23:05 +11:00
PrettyProgs.thy Isabelle2016-1: syntax: use semantic markup instead of "header" 2017-01-05 14:22:24 +11: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 Handling of AsmStmt in c-parser, more tests. 2016-12-01 17:07:54 +11:00
complit.ML Import release snapshot. 2014-07-14 21:32:44 +02:00
expression_translation.ML Isabelle2016-1: update references to renamed constants and facts 2017-01-05 14:23:05 +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 Handling of AsmStmt in c-parser, more tests. 2016-12-01 17:07:54 +11:00
isa_termstypes.ML Isabelle2016-1: update CParser and AutoCorres to new character representation 2017-01-05 14:27:07 +11:00
isar_install.ML Isabelle2016-1: update to new ML API 2017-01-05 14:26:14 +11:00
mkrelease license-tool: missing license headers + .licenseignore [VER-551] 2016-07-14 16:34:31 +10:00
modifies_proofs.ML Isabelle2016-1: update to new ML API 2017-01-05 14:26:14 +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 Add a facility for ignoring complex asm. 2016-12-01 17:08:00 +11: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 Add a facility for ignoring complex asm. 2016-12-01 17:08:00 +11:00
syntax_transforms.ML Handling of AsmStmt in c-parser, more tests. 2016-12-01 17:07:54 +11:00
termstypes-sig.ML Add a facility for ignoring complex asm. 2016-12-01 17:08:00 +11:00
termstypes.ML Add a facility for ignoring complex asm. 2016-12-01 17:08:00 +11: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