cc4b4102b7
To restore some previous functionality, add a mechanism by which an __asm__ statement too complex to be translated can still be ignored (handled as an empty statement). A demo file does this for a wrapper around "nop". Also use this facility to support legacy camkes-glue proofs which assume that the software interrupt operator "swi" doesn't break anything. |
||
---|---|---|
.. | ||
doc | ||
recursive_records | ||
Simpl | ||
standalone-parser | ||
testfiles | ||
tools | ||
umm_heap | ||
.gitignore | ||
Absyn-CType.ML | ||
Absyn-Expr.ML | ||
Absyn-Serial.ML | ||
Absyn-StmtDecl.ML | ||
Absyn.ML | ||
basics.ML | ||
Binaryset.ML | ||
calculate_state.ML | ||
complit.ML | ||
CProof.thy | ||
CTranslation.thy | ||
expression_translation.ML | ||
expression_typing.ML | ||
Feedback.ML | ||
FunctionalRecordUpdate.ML | ||
General.ML | ||
globalmakevars | ||
heapstatetype.ML | ||
hp_termstypes.ML | ||
HPInter.ML | ||
IndirectCalls.thy | ||
INSTALL | ||
isa_termstypes.ML | ||
IsaMakefile | ||
isar_install.ML | ||
Makefile | ||
MANIFEST | ||
MemoryModelExtras-sig.ML | ||
MemoryModelExtras.ML | ||
mkrelease | ||
MLton-LICENSE | ||
modifies_proofs.ML | ||
MString.ML | ||
name_generation.ML | ||
openUnsynch.ML | ||
PackedTypes.thy | ||
PrettyProgs.thy | ||
program_analysis.ML | ||
README | ||
Region.ML | ||
RegionExtras.ML | ||
RELEASES | ||
ROOT | ||
smlnj-license.html | ||
SourceFile.ML | ||
SourcePos.ML | ||
static-fun.ML | ||
StaticFun.thy | ||
stmt_translation.ML | ||
StrictC.grm | ||
StrictC.grm.sig | ||
StrictC.grm.sml | ||
StrictC.lex | ||
StrictC.lex.sml | ||
StrictCParser.ML | ||
syntax_transforms.ML | ||
Target-generic32.ML | ||
TargetNumbers-sig.ML | ||
termstypes-sig.ML | ||
termstypes.ML | ||
topo_sort.ML | ||
UMM_Proofs.ML | ||
UMM_termstypes.ML | ||
use.ML |
# # 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