Added support for the Pascal compiler.
authordtrg <none@none>
Sat, 22 Jul 2006 21:03:07 +0000 (21:03 +0000)
committerdtrg <none@none>
Sat, 22 Jul 2006 21:03:07 +0000 (21:03 +0000)
lang/pc/comp/pmfile [new file with mode: 0644]
lang/pc/pmfile [new file with mode: 0644]
pmfile

diff --git a/lang/pc/comp/pmfile b/lang/pc/comp/pmfile
new file mode 100644 (file)
index 0000000..24d6f85
--- /dev/null
@@ -0,0 +1,166 @@
+-- $Source$
+-- $State$
+
+local d = ROOTDIR.."lang/pc/comp/"
+
+local extract_parameters = simple {
+       outputs = {
+               "%U%/debugcst.h",
+               "%U%/density.h",
+               "%U%/errout.h",
+               "%U%/idfsize.h",
+               "%U%/inputtype.h",
+               "%U%/numsize.h",
+               "%U%/strsize.h",
+               "%U%/target_sizes.h",
+               "%U%/nocross.h",
+               "%U%/dbsymtab.h",
+       },
+       
+       command = {
+               "cd %out[1]:dirname% && %in[1]% %in[2]%"
+       },
+       
+       file (d.."make.hfiles"),
+       file (d.."Parameters")
+}
+
+local lpars = LLgen {
+       simple {
+               outputs = {"%U%/tokenfile.g"},
+               command = {
+                       "%in[1]% < %in[2]% > %out[1]%"
+               },
+               file (d.."make.tokfile"),
+               file (d.."tokenname.c")
+       },
+       file (d.."program.g"),
+       file (d.."declar.g"),
+       file (d.."expression.g"),
+       file (d.."statement.g"),
+}
+
+local allocd_header = simple {
+       class = "allocd_header",
+       command = {
+               "%in[1]% < %in[2]% > %out[1]%"
+       },
+       
+       file (d.."make.allocd")
+}
+       
+local cfile_with_headers = cfile {
+       class = "cfile_with_headers",
+       dynamicheaders = {
+               file (d),
+               extract_parameters,
+               allocd_header { outputs = {"%U%/def.h"},           (d.."def.H") },
+               allocd_header { outputs = {"%U%/type.h"},          (d.."type.H") },
+               allocd_header { outputs = {"%U%/scope.h"},         (d.."scope.H") },
+               allocd_header { outputs = {"%U%/node.h"},          (d.."node.H") },
+               allocd_header { outputs = {"%U%/desig.h"},         (d.."desig.H") },
+               lpars
+       }
+}
+       
+lang_pc_compiler = cprogram {
+       CDEFINES = {PARENT, "-DSTATIC=static"},
+       
+       cfile_with_headers (d.."LLlex.c"),
+       cfile_with_headers (d.."LLmessage.c"),
+       cfile_with_headers (d.."body.c"),
+       cfile_with_headers (d.."chk_expr.c"),
+       cfile_with_headers (d.."code.c"),
+       cfile_with_headers (d.."cstoper.c"),
+       cfile_with_headers (d.."def.c"),
+       cfile_with_headers (d.."desig.c"),
+       cfile_with_headers (d.."enter.c"),
+       cfile_with_headers (d.."error.c"),
+       cfile_with_headers (d.."idf.c"),
+       cfile_with_headers (d.."input.c"),
+       cfile_with_headers (d.."label.c"),
+       cfile_with_headers (d.."lookup.c"),
+       cfile_with_headers (d.."main.c"),
+       cfile_with_headers (d.."misc.c"),
+       cfile_with_headers (d.."node.c"),
+       cfile_with_headers (d.."options.c"),
+       cfile_with_headers (d.."progs.c"),
+       cfile_with_headers (d.."readwrite.c"),
+       cfile_with_headers (d.."scope.c"),
+       cfile_with_headers (d.."stab.c"),
+       cfile_with_headers (d.."tokenname.c"),
+       cfile_with_headers (d.."type.c"),
+       cfile_with_headers (d.."typequiv.c"),
+
+       foreach {
+               rule = cfile_with_headers,
+               ith { lpars, from=2 }
+       },
+
+       cfile_with_headers {
+               simple {
+                       outputs = {"%U%-symbol2str.c"},
+                       command = {
+                               "%in[1]% < %in[2]% > %out[1]%"
+                       },
+                       
+                       file (d.."make.tokcase"),
+                       file (d.."tokenname.c")
+               }
+       },
+       
+       cfile_with_headers {
+               CEXTRAFLAGS = "-I"..d,
+               tabgen (d.."char.tab")
+       },
+
+       cfile_with_headers {
+               simple {
+                       outputs = {"%U%-next.c"},
+                       command = {
+                               "%in% > %out%"
+                       },
+                       
+                       file (d.."make.next"),
+
+                       file (d.."def.H"),
+                       file (d.."type.H"),
+                       file (d.."node.H"),
+                       file (d.."scope.H"),
+                       file (d.."desig.H"),
+                       file (d.."tmpvar.C"),
+                       file (d.."casestat.C"),
+               }
+       },
+
+       cfile_with_headers {
+               allocd_header { outputs = {"%U%-tmpvar.c"}, (d.."tmpvar.C") }
+       },
+       
+       cfile_with_headers {
+               allocd_header { outputs = {"%U%-casestat.c"}, (d.."casestat.C") }
+       },
+       
+       lib_em_mes,
+       lib_emk,
+       lib_em_data,
+       lib_input,
+       lib_assert,
+       lib_alloc,
+       lib_flt_arith,
+       lib_print,
+       lib_string,
+       lib_system,
+
+       outputs = {"%U%/em_pc"},
+       install = {
+               pm.install(              "%BINDIR%%PLATDEP%/em_pc"),
+               pm.install(d.."em_pc.6", "%BINDIR%/man/man6/em_pc.6"),
+       }
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-22 21:03:07  dtrg
+-- Added support for the Pascal compiler.
+--
\ No newline at end of file
diff --git a/lang/pc/pmfile b/lang/pc/pmfile
new file mode 100644 (file)
index 0000000..3b7a134
--- /dev/null
@@ -0,0 +1,19 @@
+-- $Source$
+-- $State$
+
+local d = ROOTDIR.."lang/pc/"
+
+include (d.."comp/pmfile")
+
+lang_pc = group {
+       lang_pc_compiler
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-22 21:03:07  dtrg
+-- Added support for the Pascal compiler.
+--
+-- Revision 1.1  2006/07/20 23:18:18  dtrg
+-- First version in CVS.
+--
diff --git a/pmfile b/pmfile
index 54f6003..99c560d 100644 (file)
--- a/pmfile
+++ b/pmfile
@@ -48,6 +48,7 @@ include "util/led/pmfile"
 
 include "lang/cem/cemcom/pmfile"
 include "lang/cem/cemcom.ansi/pmfile"
+include "lang/pc/pmfile"
 
 include "mach/proto/pmfile"
 include "mach/6500/pmfile"
@@ -159,7 +160,10 @@ configure = simple {
 
 -- Revision history
 -- $Log$
--- Revision 1.6  2006-07-22 20:10:41  dtrg
+-- Revision 1.7  2006-07-22 21:03:07  dtrg
+-- Added support for the Pascal compiler.
+--
+-- Revision 1.6  2006/07/22 20:10:41  dtrg
 -- Added support for the esize object inspection tool.
 --
 -- Revision 1.5  2006/07/22 20:04:41  dtrg