lh-l4v/tools/c-parser
Gerwin Klein 3196054268 isabelle2021-1: remove extend from TheoryData
No longer required in Isabelle2021-1 for TheoryData and GenericData

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2022-03-29 08:38:25 +11:00
..
Simpl isabelle2021-1: sync Simpl from AFP 2022-03-29 08:38:25 +11:00
doc license: provide documentation under CC-BY-SA-4.0 2020-03-16 14:19:15 +08:00
recursive_records isabelle2021-1: remove extend from TheoryData 2022-03-29 08:38:25 +11:00
standalone-parser c-parser: provide AARCH64 setup 2022-02-03 16:13:45 +11:00
testfiles c-parser: provide AARCH64 setup 2022-02-03 16:13:45 +11:00
tools spdx: provide copyright info for mllex/mlyacc 2020-03-16 14:19:15 +08:00
umm_heap isabelle2021-1 c-parser: update CParser + tests 2022-03-29 08:38:25 +11:00
.gitignore c-parser: provide AARCH64 setup 2022-02-03 16:13:45 +11:00
Absyn-CType.ML licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
Absyn-Expr.ML licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
Absyn-Serial.ML licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
Absyn-StmtDecl.ML licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
Absyn.ML licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
Binaryset.ML licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
CLanguage.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
CProof.thy isabelle2021-1 c-parser: update CParser + tests 2022-03-29 08:38:25 +11:00
CTranslation.thy isabelle-2021: cparser+tests update 2021-09-30 16:53:17 +10:00
Feedback.ML licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
FunctionalRecordUpdate.ML c-parser: rewrite functional-record-update fN defs 2021-03-05 18:32:43 +11:00
General.ML licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
HPInter.ML isabelle-2021: cparser+tests update 2021-09-30 16:53:17 +10:00
INSTALL.md c-parser: provide AARCH64 setup 2022-02-03 16:13:45 +11:00
IndirectCalls.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
MANIFEST Finish serialisation code for AST. 2016-07-05 17:37:14 +10:00
MString.ML licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
Makefile c-parser: update to Isabelle2020 2020-10-27 15:52:31 +10:00
MemoryModelExtras-sig.ML licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
MemoryModelExtras.ML licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
ModifiesProofs.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
PackedTypes.thy isabelle-2021 cparser: Word_Lib include 2021-09-30 16:53:17 +10:00
PrettyProgs.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
README.md c-parser: use markdown extension 2020-11-02 17:16:46 +10:00
RELEASES.md cparser: add release notes for c-parser-1.18 2021-10-31 13:41:58 +11:00
ROOT isabelle-2021: HOL-Word now in HOL-Library 2021-09-30 16:53:17 +10:00
Region.ML licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
RegionExtras.ML licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
SourceFile.ML licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
SourcePos.ML licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
StaticFun.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
StrictC.grm licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
StrictC.lex licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
StrictCParser.ML licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
Target-generic32.ML licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
TargetNumbers-sig.ML licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
UMM_Proofs.ML isabelle2021-1: remove extend from TheoryData 2022-03-29 08:38:25 +11:00
UMM_termstypes.ML licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
basics.ML licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
calculate_state.ML isabelle2021-1: remove extend from TheoryData 2022-03-29 08:38:25 +11:00
complit.ML licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
expression_translation.ML isabelle-2021: cparser+tests update 2021-09-30 16:53:17 +10:00
expression_typing.ML licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
globalmakevars licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
heapstatetype.ML licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
hp_termstypes.ML licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
isa_termstypes.ML isabelle-2021: cparser+tests update 2021-09-30 16:53:17 +10:00
isar_install.ML isabelle2021-1: remove extend from TheoryData 2022-03-29 08:38:25 +11:00
mkrelease c-parser: provide AARCH64 setup 2022-02-03 16:13:45 +11:00
modifies_proofs.ML isabelle-2021: cparser+tests update 2021-09-30 16:53:17 +10:00
name_generation.ML licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
openUnsynch.ML licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
program_analysis.ML c-parser: use fresh names for temporaries 2021-03-02 19:39:12 +11:00
shorten_names.ML licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
static-fun.ML licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
stmt_translation.ML isabelle2021-1: remove extend from TheoryData 2022-03-29 08:38:25 +11:00
syntax_transforms.ML c-parser: use fresh names for temporaries 2021-03-02 19:39:12 +11:00
termstypes-sig.ML licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
termstypes.ML isabelle-2021: cparser+tests update 2021-09-30 16:53:17 +10:00
topo_sort.ML licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
use.ML licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00

README.md

The 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 docs/ctranslation.pdf for more information about the options and C language semantics that this tool provides.

See also the 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 https://isa-afp.org/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