From f1386f3aa508a9a7446c541a916d35112571da91 Mon Sep 17 00:00:00 2001 From: dtrg Date: Sat, 22 Jul 2006 21:03:07 +0000 Subject: [PATCH] Added support for the Pascal compiler. --- lang/pc/comp/pmfile | 166 ++++++++++++++++++++++++++++++++++++++++++++ lang/pc/pmfile | 19 +++++ pmfile | 6 +- 3 files changed, 190 insertions(+), 1 deletion(-) create mode 100644 lang/pc/comp/pmfile create mode 100644 lang/pc/pmfile diff --git a/lang/pc/comp/pmfile b/lang/pc/comp/pmfile new file mode 100644 index 000000000..24d6f8583 --- /dev/null +++ b/lang/pc/comp/pmfile @@ -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 index 000000000..3b7a13497 --- /dev/null +++ b/lang/pc/pmfile @@ -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 54f600390..99c560dfc 100644 --- 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