summaryrefslogtreecommitdiff
path: root/examples/gfcc/compiler/FILES
blob: 332b3737252d1fab2a32adf31b771a5b9d9be3a5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
GF sources:
----------
Imper.gf      -- abstract syntax of an imperative language
ImperC.gf     -- concrete syntax for C notation
ImperJVM.gf   -- concrete syntax for JVM notation
ResImper.gf   -- resource module for concrete syntaxes

Scripts:
-------
gfcc          -- the main compiler executable reading Foo.c ; shell script
typecheck.gfs -- the type checker and constraint solver ; GF editor script
CleanJVM.hs   -- cleans up jvm.tmp to produce Foo.j ; Haskell module
makefile      -- builds the compiler from GF source ; Unix Make file

Runtime system:
--------------

runtime.j     -- jasmin source of the runtime class

Generated files:
---------------
Imper.gfcm    -- canonical multilingual GF grammar for C and JVM
ImperC.cf     -- LBNF grammar for C generated from Imper.gfcm
gft.tmp       -- parse result generated by the compiler front end
jvm.tmp       -- pseudo-JVM produced by GF linearization

Required programs to use the compiler:
-------------------------------------
gf+       -- Grammatical Framework version 2.0+, >= 23/9/2004
jasmin    -- JVM assembler (to compile Foo.j to Foo.class)

Required programs to build the compiler:
---------------------------------------
bnfc       -- BNF Converter version 2.1+,  >= 23/9/2004
happy      -- parser generator for Haskell, >= 1.13 
alex       -- lexer generator for Haskell, >= 2.0
Profile.hs -- BNFC source file (formats/profile), must be on your path
Trees.hs   -- BNFC source file (formats/profile), must be on your path

File formats:
------------
Foo.c      -- C source file
Foo.j      -- generated Jasmin JVM assembler file
Foo.class  -- assembled JVM bytecode file