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 TestImperC -- executable parser generated from ImperC.cf runtime.class -- runtime binary generated from runtime.j gft.tmp -- parse result generated by the compiler front end jvm.tmp -- pseudo-JVM produced by GF linearization TestImperC -- external parser generated by BNFC TestImperC.hs -- the external parser Main module ParImperC.hs -- the external parser parser module LexImperC.hs -- the external parser lexer module Required programs to use the compiler: ------------------------------------- gf+ -- Grammatical Framework version 2.1beta, >= 23/9/2004 jasmin -- JVM assembler (to compile Foo.j to Foo.class) Required programs to build the compiler: --------------------------------------- bnfc -- BNF Converter version 2.2beta, >= 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