From be612b780f0d2ff1a201fad343244895e53978fc Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 6 Jan 2008 14:38:16 +0000 Subject: Private headers in common directory is a bad idea git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@513 42af7a65-404d-4744-a932-0658087f49c3 --- misc/pascal/include/pas.h | 114 --------------------- misc/pascal/include/pblck.h | 51 ---------- misc/pascal/include/pexpr.h | 92 ----------------- misc/pascal/include/pfunc.h | 57 ----------- misc/pascal/include/pgen.h | 92 ----------------- misc/pascal/include/plink.h | 52 ---------- misc/pascal/include/plreloc.h | 59 ----------- misc/pascal/include/plsym.h | 61 ----------- misc/pascal/include/pprgm.h | 47 --------- misc/pascal/include/pproc.h | 49 --------- misc/pascal/include/pstm.h | 47 --------- misc/pascal/include/ptbl.h | 78 -------------- misc/pascal/include/ptdefs.h | 209 -------------------------------------- misc/pascal/include/ptkn.h | 58 ----------- misc/pascal/include/punit.h | 51 ---------- misc/pascal/insn16/libinsn/pgen.c | 1 - misc/pascal/insn32/libinsn/pgen.c | 1 - misc/pascal/nuttx/INSTALL.sh | 6 +- misc/pascal/pascal/Makefile | 4 + misc/pascal/pascal/pas.h | 114 +++++++++++++++++++++ misc/pascal/pascal/pblck.h | 51 ++++++++++ misc/pascal/pascal/pexpr.h | 92 +++++++++++++++++ misc/pascal/pascal/pfunc.h | 57 +++++++++++ misc/pascal/pascal/pgen.h | 92 +++++++++++++++++ misc/pascal/pascal/pprgm.h | 47 +++++++++ misc/pascal/pascal/pproc.h | 49 +++++++++ misc/pascal/pascal/pstm.h | 47 +++++++++ misc/pascal/pascal/ptbl.h | 78 ++++++++++++++ misc/pascal/pascal/ptdefs.h | 209 ++++++++++++++++++++++++++++++++++++++ misc/pascal/pascal/ptkn.h | 58 +++++++++++ misc/pascal/pascal/punit.h | 51 ++++++++++ misc/pascal/plink/Makefile | 5 + misc/pascal/plink/plink.h | 52 ++++++++++ misc/pascal/plink/plreloc.h | 59 +++++++++++ misc/pascal/plink/plsym.h | 61 +++++++++++ 35 files changed, 1129 insertions(+), 1122 deletions(-) delete mode 100644 misc/pascal/include/pas.h delete mode 100644 misc/pascal/include/pblck.h delete mode 100644 misc/pascal/include/pexpr.h delete mode 100644 misc/pascal/include/pfunc.h delete mode 100644 misc/pascal/include/pgen.h delete mode 100644 misc/pascal/include/plink.h delete mode 100644 misc/pascal/include/plreloc.h delete mode 100644 misc/pascal/include/plsym.h delete mode 100644 misc/pascal/include/pprgm.h delete mode 100644 misc/pascal/include/pproc.h delete mode 100644 misc/pascal/include/pstm.h delete mode 100644 misc/pascal/include/ptbl.h delete mode 100644 misc/pascal/include/ptdefs.h delete mode 100644 misc/pascal/include/ptkn.h delete mode 100644 misc/pascal/include/punit.h create mode 100644 misc/pascal/pascal/pas.h create mode 100644 misc/pascal/pascal/pblck.h create mode 100644 misc/pascal/pascal/pexpr.h create mode 100644 misc/pascal/pascal/pfunc.h create mode 100644 misc/pascal/pascal/pgen.h create mode 100644 misc/pascal/pascal/pprgm.h create mode 100644 misc/pascal/pascal/pproc.h create mode 100644 misc/pascal/pascal/pstm.h create mode 100644 misc/pascal/pascal/ptbl.h create mode 100644 misc/pascal/pascal/ptdefs.h create mode 100644 misc/pascal/pascal/ptkn.h create mode 100644 misc/pascal/pascal/punit.h create mode 100644 misc/pascal/plink/plink.h create mode 100644 misc/pascal/plink/plreloc.h create mode 100644 misc/pascal/plink/plsym.h (limited to 'misc/pascal') diff --git a/misc/pascal/include/pas.h b/misc/pascal/include/pas.h deleted file mode 100644 index 5a4829948..000000000 --- a/misc/pascal/include/pas.h +++ /dev/null @@ -1,114 +0,0 @@ -/*************************************************************************** - * pas.h - * External Declarations associated with pas.c - * - * Copyright (C) 2008 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ***************************************************************************/ - -#ifndef __PAS_H -#define __PAS_H - -/*************************************************************************** - * Compilation Switches - ***************************************************************************/ - -#define LSTTOFILE 1 - -/*************************************************************************** - * Included Files - ***************************************************************************/ - -#include "pdefs.h" -#include "pofflib.h" - -/*************************************************************************** - * Definitions - ***************************************************************************/ - -/* This is a helper macro just to make things pretty in the source code */ - -#define FP0 (&fileState[0]) /* Main file description */ -#define FP (&fileState[includeIndex]) /* Current file description */ -#define FPP (&fileState[includeIndex-1]) /* Previous file description */ -#define IS_NESTED_UNIT ((includeIndex > 0) && (FP->kind == eIsUnit)) - -/*************************************************************************** - * Global Types - ***************************************************************************/ - -/*************************************************************************** - * Global Variable - ***************************************************************************/ - -extern uint16 token; /* Current token */ -extern uint16 tknSubType; /* Extended token type */ -extern sint32 tknInt; /* Integer token value */ -extern float64 tknReal; /* Real token value */ -extern STYPE *tknPtr; /* Pointer to symbol token */ -extern FTYPE files[MAX_FILES+1]; /* File Table */ -extern fileState_t fileState[MAX_INCL]; /* State of all open files */ - -/* sourceFileName : Source file name from command line - * includePath[] : Pathes to search when including file - */ - -extern char *sourceFileName; -extern char *includePath[MAX_INCPATHES]; - -extern poffHandle_t poffHandle; /* Handle for POFF object */ - -extern FILE *poffFile; /* POFF output file */ -extern FILE *errFile; /* Error file pointer */ -extern FILE *lstFile; /* List file pointer */ - -extern WTYPE withRecord; /* RECORD of WITH statement */ -extern sint16 level; /* Static nesting level */ -extern sint16 includeIndex; /* Include file index */ -extern sint16 nIncPathes; /* Number pathes in includePath[] */ -extern uint16 label; /* Last label number */ -extern sint16 nsym; /* Number symbol table entries */ -extern sint16 nconst; /* Number constant table entries */ -extern sint16 sym_strt; /* Symbol search start index */ -extern sint16 const_strt; /* Constant search start index */ -extern sint16 err_count; /* Error counter */ -extern sint16 nfiles; /* Program file counter */ -extern sint32 warn_count; /* Warning counter */ -extern sint32 dstack; /* data stack size */ - -/*************************************************************************** - * Global Function Prototypes - ***************************************************************************/ - -extern void openNestedFile (const char *fileName); -extern void closeNestedFile (void); - -#endif /* __PAS_H */ diff --git a/misc/pascal/include/pblck.h b/misc/pascal/include/pblck.h deleted file mode 100644 index 22b6b75b4..000000000 --- a/misc/pascal/include/pblck.h +++ /dev/null @@ -1,51 +0,0 @@ -/*************************************************************************** - * pblck.h - * External Declarations associated with pblck.c - * - * Copyright (C) 2008 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ***************************************************************************/ - -#ifndef __PBLCK_H -#define __PBLCK_H - -/*************************************************************************** - * Global Function Prototypes - ***************************************************************************/ - -extern void block(void); -extern void declarationGroup(sint32 beginLabel); -extern void constantDefinitionGroup(void); -extern void typeDefinitionGroup(void); -extern void variableDeclarationGroup(void); -extern sint16 formalParameterList(STYPE *procPtr); - -#endif /* __PBLCK_H */ diff --git a/misc/pascal/include/pexpr.h b/misc/pascal/include/pexpr.h deleted file mode 100644 index dba1f1ee7..000000000 --- a/misc/pascal/include/pexpr.h +++ /dev/null @@ -1,92 +0,0 @@ -/*********************************************************************** - * pexpr.h - * External Declarations associated with pexpr.c - * - * Copyright (C) 2008 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ***********************************************************************/ - -#ifndef __PEXPR_H -#define __PEXPR_H - -/*********************************************************************** - * Type Definitions - ***********************************************************************/ - -typedef enum exprEnum -{ - exprUnknown = 0, /* TOS value unknown */ - exprAnyOrdinal, /* TOS = any ordinal type */ - exprAnyString, /* TOS = any string type */ - - exprInteger, /* TOS = integer value */ - exprReal, /* TOS = real value */ - exprChar, /* TOS = character value */ - exprBoolean, /* TOS = boolean(integer) value */ - exprScalar, /* TOS = scalar(integer) value */ - exprString, /* TOS = variable length string reference */ - exprStkString, /* TOS = reference to string on string stack */ - exprCString, /* TOS = pointer to C string */ - exprSet, /* TOS = set(integer) value */ - exprArray, /* TOS = array */ - exprRecord, /* TOS = record */ - - exprIntegerPtr, /* TOS = pointer to integer value */ - exprRealPtr, /* TOS = pointer to a real value */ - exprCharPtr, /* TOS = pointer to a character value */ - exprBooleanPtr, /* TOS = pointer to a boolean value */ - exprScalarPtr, /* TOS = pointer to a scalar value */ - exprSetPtr, /* TOS = pointer to a set value */ - exprArrayPtr, /* TOS = pointer to an array */ - exprRecordPtr /* TOS = pointer to a record */ -} exprType; - -/*********************************************************************** - * Global Variables - ***********************************************************************/ - -extern int constantToken; -extern sint32 constantInt; -extern float64 constantReal; -extern char *constantStart; - -/*********************************************************************** - * Global Function Protypes - ***********************************************************************/ - -extern exprType expression ( exprType findExprType, STYPE *typePtr ); -extern exprType varParm ( exprType varExprType, STYPE *typePtr ); -extern void arrayIndex ( sint32 size ); -extern exprType getExprType( STYPE *sType ); - -extern void constantExpression(void); - -#endif /* __PEXPR_H */ diff --git a/misc/pascal/include/pfunc.h b/misc/pascal/include/pfunc.h deleted file mode 100644 index e6d3303e4..000000000 --- a/misc/pascal/include/pfunc.h +++ /dev/null @@ -1,57 +0,0 @@ -/*************************************************************************** - * pfunc.h - * External Declarations associated with pfunc.c - * - * Copyright (C) 2008 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ***************************************************************************/ - -#ifndef __PFUNC_H -#define __PFUNC_H - -/*************************************************************************** - * Included Files - ***************************************************************************/ - -#include "pexpr.h" /* For exprType */ - -/*************************************************************************** - * Global Function Prototypes - ***************************************************************************/ - -extern void primeBuiltInFunctions(void); -extern exprType builtInFunction(void); -extern void builtInFunctionOfConstant(void); - -extern void checkLParen(void); -extern void checkRParen(void); - -#endif /* __PFUNC_H */ diff --git a/misc/pascal/include/pgen.h b/misc/pascal/include/pgen.h deleted file mode 100644 index 055e14eb3..000000000 --- a/misc/pascal/include/pgen.h +++ /dev/null @@ -1,92 +0,0 @@ -/*************************************************************************** - * pgen.h - * External Declarations associated with pgen.c - * - * Copyright (C) 2008 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ***************************************************************************/ - -#ifndef __PGEN_H -#define __PGEN_H - -/*************************************************************************** - * Compilation Switches - ***************************************************************************/ - -/*************************************************************************** - * Included Files - ***************************************************************************/ - -#include "podefs.h" - -/*************************************************************************** - * Definitions - ***************************************************************************/ - -/*************************************************************************** - * Global Types - ***************************************************************************/ - -/*************************************************************************** - * Global Variable Prototypes - ***************************************************************************/ - -/*************************************************************************** - * Global Function Prototypes - ***************************************************************************/ - -extern sint32 pas_GetCurrentStackLevel(void); -extern void pas_InvalidateCurrentStackLevel(void); -extern void pas_SetCurrentStackLevel(sint32 dwLsp); -extern uint32 pas_GetNStackLevelChanges(void); - -extern void pas_GenerateSimple(enum pcode_e eOpCode); -extern void pas_GenerateDataOperation(enum pcode_e eOpCode, sint32 dwData); -extern void pas_GenerateDataSize(sint32 dwDataSize); -extern void pas_GenerateFpOperation(ubyte fpOpcode); -extern void pas_GenerateIoOperation(uint16 ioOpcode, uint16 fileNumber); -extern void pas_BuiltInFunctionCall(uint16 libOpcode); -extern void pas_GenerateLevelReference(enum pcode_e eOpCode, uint16 wLevel, - sint32 dwOffset); -extern void pas_GenerateStackReference(enum pcode_e eOpCode, STYPE *pVarPtr); -extern void pas_GenerateProcedureCall(STYPE *pProcPtr); -extern void pas_GenerateLineNumber(uint16 wIncludeNumber, - uint32 dwLineNumber); -extern void pas_GenerateStackExport(STYPE *pVarPtr); -extern void pas_GenerateStackImport(STYPE *pVarPtr); -extern void pas_GenerateProcedureCall(STYPE *pProcPtr); -extern void pas_GenerateDebugInfo(STYPE *pProcPtr, uint32 dwReturnSize); -extern void pas_GenerateProcExport(STYPE *pProcPtr); -extern void pas_GenerateProcImport(STYPE *pProcPtr); -extern void pas_GeneratePoffOutput(void); - -#endif /* __PGEN_H */ - diff --git a/misc/pascal/include/plink.h b/misc/pascal/include/plink.h deleted file mode 100644 index 350bce461..000000000 --- a/misc/pascal/include/plink.h +++ /dev/null @@ -1,52 +0,0 @@ -/*************************************************************************** - * plink.h - * External Declarations associated with plink.c - * - * Copyright (C) 2008 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ***************************************************************************/ - -#ifndef __PLINK_H -#define __PLINK_H - -/*************************************************************************** - * Included Files - ***************************************************************************/ - -/*************************************************************************** - * Global Variables - ***************************************************************************/ - -/*************************************************************************** - * Global Function Prototypes - ***************************************************************************/ - -#endif /* __PLINK_H */ diff --git a/misc/pascal/include/plreloc.h b/misc/pascal/include/plreloc.h deleted file mode 100644 index 1998361b9..000000000 --- a/misc/pascal/include/plreloc.h +++ /dev/null @@ -1,59 +0,0 @@ -/*************************************************************************** - * plreloc.h - * External Declarations associated with plreloc.c - * - * Copyright (C) 2008 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ***************************************************************************/ - -#ifndef __PLRELOC_H -#define __PLRELOC_H - -/*************************************************************************** - * Included Files - ***************************************************************************/ - -#include "pofflib.h" - -/*************************************************************************** - * Global Variables - ***************************************************************************/ - -/*************************************************************************** - * Global Function Prototypes - ***************************************************************************/ - -extern void mergeRelocations(poffHandle_t inHandle, - uint32 pcOffset, uint32 symOffset); -extern void applyRelocations(poffHandle_t outHandle); -extern void releaseRelocations(void); - -#endif /* __PLRELOC_H */ diff --git a/misc/pascal/include/plsym.h b/misc/pascal/include/plsym.h deleted file mode 100644 index 96f520148..000000000 --- a/misc/pascal/include/plsym.h +++ /dev/null @@ -1,61 +0,0 @@ -/*************************************************************************** - * plsym.h - * External Declarations associated with plsym.c - * - * Copyright (C) 2008 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ***************************************************************************/ - -#ifndef __PLSYM_H -#define __PLSYM_H - -/*************************************************************************** - * Included Files - ***************************************************************************/ - -#include "pofflib.h" - -/*************************************************************************** - * Global Variables - ***************************************************************************/ - -/*************************************************************************** - * Global Function Prototypes - ***************************************************************************/ - -extern uint32 mergeSymbols(poffHandle_t inHandle, - uint32 pcOffset, uint32 symOffset); -extern void verifySymbols(void); -extern void writeSymbols(poffHandle_t outHandle); -extern poffLibSymbol_t *getSymbolByIndex(uint32 symIndex); -extern void releaseSymbols(void); - -#endif /* __PLSYM_H */ diff --git a/misc/pascal/include/pprgm.h b/misc/pascal/include/pprgm.h deleted file mode 100644 index 7c4ef2ca0..000000000 --- a/misc/pascal/include/pprgm.h +++ /dev/null @@ -1,47 +0,0 @@ -/*************************************************************************** - * pprgm.h - * External Declarations associated with pprgm.c - * - * Copyright (C) 2008 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ***************************************************************************/ - -#ifndef __PPRGM_H -#define __PPRGM_H - -/*************************************************************************** - * Global Function Prototypes - ***************************************************************************/ - -extern void program(void); -extern void usesSection(void); - -#endif /* __PPRGM_H */ diff --git a/misc/pascal/include/pproc.h b/misc/pascal/include/pproc.h deleted file mode 100644 index 5ede20a57..000000000 --- a/misc/pascal/include/pproc.h +++ /dev/null @@ -1,49 +0,0 @@ -/*************************************************************************** - * pproc.h - * External Declarations associated with PPROC.C - * - * Copyright (C) 2008 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ***************************************************************************/ - -#ifndef __PPROC_H -#define __PPROC_H - -/*************************************************************************** - * Global Function Prototypes - ***************************************************************************/ - -extern void primeBuiltInProcedures(void); -extern void builtInProcedure(void); -extern int actualParameterSize(STYPE *procPtr, int parmNo); -extern int actualParameterList(STYPE *procPtr); - -#endif /* __PPROC_H */ diff --git a/misc/pascal/include/pstm.h b/misc/pascal/include/pstm.h deleted file mode 100644 index 6508db68a..000000000 --- a/misc/pascal/include/pstm.h +++ /dev/null @@ -1,47 +0,0 @@ -/*************************************************************************** - * pstm.h - * External Declarations associated with pstm.c - * - * Copyright (C) 2008 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ***************************************************************************/ - -#ifndef __PSTM_H -#define __PSTM_H - -/*************************************************************************** - * Global Function Prototypes - ***************************************************************************/ - -extern void statement (void); /* Process Statement */ -extern void compoundStatement (void); /* Compound statement */ - -#endif /* __PSTM_H */ diff --git a/misc/pascal/include/ptbl.h b/misc/pascal/include/ptbl.h deleted file mode 100644 index 70d318846..000000000 --- a/misc/pascal/include/ptbl.h +++ /dev/null @@ -1,78 +0,0 @@ -/*************************************************************************** - * ptbl.h - * External Declarations associated with ptbl.c - * - * Copyright (C) 2008 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ***************************************************************************/ - -#ifndef __PTBL_H -#define __PTBL_H - -/*************************************************************************** - * Included Files - ***************************************************************************/ - -#include "config.h" - -/*************************************************************************** - * Global Variables - ***************************************************************************/ - -extern STYPE *parentInteger; -extern STYPE *parentString; - -/*************************************************************************** - * Global Function Prototypes - ***************************************************************************/ - -extern const RTYPE *findReservedWord (char *name); -extern STYPE *findSymbol (char *inName); -extern STYPE *addTypeDefine (char *name, ubyte type, uint16 size, - STYPE *parent); -extern STYPE *addConstant (char *name, ubyte type, sint32 *value, - STYPE *parent); -extern STYPE *addStringConst (char *name, uint32 offset, uint32 size); -extern STYPE *addFile (char *name, uint16 fileNumber); -extern STYPE *addLabel (char *name, uint16 label); -extern STYPE *addProcedure (char *name, ubyte type, uint16 label, - uint16 nParms, STYPE *parent); -extern STYPE *addVariable (char *name, ubyte type, uint16 offset, - uint16 size, STYPE *parent); -extern STYPE *addField (char *name, STYPE *record); -extern void primeSymbolTable (unsigned long symbolTableSize); -extern void verifyLabels (sint32 symIndex); - -#if CONFIG_DEBUG -extern void dumpTables (void); -#endif - -#endif /* __PTBL_H */ diff --git a/misc/pascal/include/ptdefs.h b/misc/pascal/include/ptdefs.h deleted file mode 100644 index d7a079e13..000000000 --- a/misc/pascal/include/ptdefs.h +++ /dev/null @@ -1,209 +0,0 @@ -/*********************************************************************** - * ptdefs.h - * Token and Symbol Table Definitions - * - * Copyright (C) 2008 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ***********************************************************************/ - -#ifndef __PTDEFS_H -#define __PTDEFS_H - -/***********************************************************************/ -/* Token Values 0-0x20 reserved for get_token identification */ - -#define tIDENT 0x01 -#define tINT_CONST 0x02 -#define tCHAR_CONST 0x03 -#define tBOOLEAN_CONST 0x04 -#define tREAL_CONST 0x05 -#define tSTRING_CONST 0x06 - -#define tLE 0x07 -#define tGE 0x08 -#define tASSIGN 0x09 -#define tSUBRANGE 0x0A - -/* Token Values 0x21-0x2F (except 0x24) are for ASCII character tokens */ - -#define tNE ('#') -#define SQUOTE 0x27 -#define tMUL ('*') -#define tFDIV ('/') - -/* Token Values 0x30-0x39 are spare */ -/* Token Values 0x3A-0x40 are for ASCII character tokens */ - -#define tLT ('<') -#define tEQ ('=') -#define tGT ('>') - -/* Token Values 0x41-0x5A are SYMBOL TABLE definitions */ - -#define sPROC 0x41 -#define sFUNC 0x42 -#define sLABEL 0x43 -#define sTYPE 0x44 -#define sFILE 0x45 -#define sINT 0x46 -#define sBOOLEAN 0x47 -#define sCHAR 0x48 -#define sREAL 0x49 -#define sTEXT 0x4a -#define sSTRING 0x4b /* String storage type */ -#define sRSTRING 0x4c /* String reference type */ -#define sSTRING_CONST 0x4d -#define sPOINTER 0x4e -#define sSCALAR 0x4f -#define sSCALAR_OBJECT 0x50 -#define sSUBRANGE 0x51 -#define sSET_OF 0x52 -#define sARRAY 0x53 -#define sRECORD 0x54 -#define sRECORD_OBJECT 0x55 -#define sFILE_OF 0x56 -#define sVAR_PARM 0x57 - -/* Token Values 0x5B-0x60 (except 0x5F) are for ASCII character tokens */ -/* Token Values 0x61-0x7a are SYMBOL TABLE definitions */ - -/* Token Values 0x7b-0x7f are for ASCII character tokens */ -/* Token Value 0x7f is spare */ - -/* Token Values 0x80-0xef are for RESERVED WORDS */ - -/* Standard constants (TRUE, FALSE, MAXINT) and standard files (INPUT, OUTPUT) - * are hard initialized into the constant/symbol table and are transparent - * to the compiler */ - -/* Reserved Words 0x80-0xaf*/ - -#define tAND 0x80 -#define tARRAY 0x81 -#define tBEGIN 0x82 -#define tCASE 0x83 -#define tCONST 0x84 -#define tDIV 0x85 -#define tDO 0x86 -#define tDOWNTO 0x87 -#define tELSE 0x88 -#define tEND 0x89 -#define tFILE 0x8a -#define tFOR 0x8b -#define tFUNCTION 0x8c -#define tGOTO 0x8d -#define tIF 0x8e -#define tIMPLEMENTATION 0x08f /* Extended pascal */ -#define tIN 0x90 -#define tINTERFACE 0x91 /* Extended pascal */ -#define tLABEL 0x92 -#define tMOD 0x93 -#define tNIL 0x94 -#define tNOT 0x95 -#define tOF 0x96 -#define tOR 0x97 -#define tPACKED 0x98 -#define tPROCEDURE 0x99 -#define tPROGRAM 0x9a -#define tRECORD 0x9b -#define tREPEAT 0x9c -#define tSET 0x9d -#define tSHL 0x9e -#define tSHR 0x9f -#define tTHEN 0xa0 -#define tTO 0xa1 -#define tTYPE 0xa2 -#define tUNIT 0xa3 /* Extended pascal */ -#define tUNTIL 0xa4 -#define tUSES 0xa5 /* Extended pascal */ -#define tVAR 0xa6 -#define tWHILE 0xa7 -#define tWITH 0xa8 - -/* The following codes indicate that the token is a built-in procedure - * or function recognized by the compiler. An additional code will be - * place in tknSubType by the tokenizer to indicate which built-in - * procedure or function applies. - */ - -#define tFUNC 0xb0 -#define tPROC 0xb1 - -/***********************************************************************/ -/* Codes to indentify built-in functions and procedures */ - -#define txNONE 0x00 - -/* Standard Functions 0x01-0x1f*/ - -#define txABS 0x01 -#define txARCTAN 0x02 -#define txCHR 0x03 -#define txCOS 0x04 -#define txEOF 0x05 -#define txEOLN 0x06 -#define txEXP 0x07 -#define txLN 0x08 -#define txODD 0x09 -#define txORD 0x0a -#define txPRED 0x0b -#define txROUND 0x0c -#define txSIN 0x0d -#define txSQR 0x0e -#define txSQRT 0x0f -#define txSUCC 0x10 -#define txTRUNC 0x11 - -/* "Less than standard" Functions 0x20-0x7f */ - -#define txGETENV 0x20 - -/* Standard Procedures 0x81-0xbf */ - -#define txGET 0x80 -#define txNEW 0x81 -#define txPACK 0x82 -#define txPAGE 0x83 -#define txPUT 0x84 -#define txREAD 0x85 -#define txREADLN 0x86 -#define txRESET 0x87 -#define txREWRITE 0x88 -#define txUNPACK 0x89 -#define txWRITE 0x8a -#define txWRITELN 0x8b - -/* "Less than standard" Procedures 0xc0-0xff */ - -#define txVAL 0xc0 - -#endif /* __PTDEFS_H */ - diff --git a/misc/pascal/include/ptkn.h b/misc/pascal/include/ptkn.h deleted file mode 100644 index d30333e0c..000000000 --- a/misc/pascal/include/ptkn.h +++ /dev/null @@ -1,58 +0,0 @@ -/*************************************************************************** - * ptkn.h - * External Declarations associated with ptkn.c - * - * Copyright (C) 2008 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ***************************************************************************/ - -#ifndef __PTKN_H -#define __PTKN_H - -/*************************************************************************** - * Public Variables - ***************************************************************************/ - -/* String stack access variables */ - -extern char *tkn_strt; /* Start of token in string stack */ -extern char *stringSP; /* Top of string stack */ - -/*************************************************************************** - * Public Function Prototypes - ***************************************************************************/ - -extern void getToken (void); -extern char getNextCharacter (boolean skipWhiteSpace); -extern sint16 primeTokenizer (unsigned long stringStackSize); -extern sint16 rePrimeTokenizer (void); - -#endif /* __PTKN_H */ diff --git a/misc/pascal/include/punit.h b/misc/pascal/include/punit.h deleted file mode 100644 index 128ec7198..000000000 --- a/misc/pascal/include/punit.h +++ /dev/null @@ -1,51 +0,0 @@ -/*************************************************************************** - * punit.h - * External Declarations associated with punit.c - * - * Copyright (C) 2008 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ***************************************************************************/ - -#ifndef __PUNIT_H -#define __PUNIT_H - -/*************************************************************************** - * Public Types - ***************************************************************************/ - -/*************************************************************************** - * Global Function Prototypes - ***************************************************************************/ - -extern void unitImplementation(void); -extern void unitInterface(void); - -#endif /* __PUNIT_H */ diff --git a/misc/pascal/insn16/libinsn/pgen.c b/misc/pascal/insn16/libinsn/pgen.c index 4be58e108..cc192587c 100644 --- a/misc/pascal/insn16/libinsn/pgen.c +++ b/misc/pascal/insn16/libinsn/pgen.c @@ -61,7 +61,6 @@ * Global Variables **********************************************************************/ -/* See pas.h */ extern poffHandle_t poffHandle; /* Handle to POFF object */ extern FILE *lstFile; /* LIST file pointer */ extern sint16 level; /* Static nesting level */ diff --git a/misc/pascal/insn32/libinsn/pgen.c b/misc/pascal/insn32/libinsn/pgen.c index 7283622aa..d6584147d 100644 --- a/misc/pascal/insn32/libinsn/pgen.c +++ b/misc/pascal/insn32/libinsn/pgen.c @@ -63,7 +63,6 @@ * Global Variables **********************************************************************/ -/* See pas.h */ extern poffHandle_t poffHandle; /* Handle to POFF object */ extern FILE *lstFile; /* LIST file pointer */ extern sint16 level; /* Static nesting level */ diff --git a/misc/pascal/nuttx/INSTALL.sh b/misc/pascal/nuttx/INSTALL.sh index 53749281f..c2f374e57 100755 --- a/misc/pascal/nuttx/INSTALL.sh +++ b/misc/pascal/nuttx/INSTALL.sh @@ -126,9 +126,9 @@ mkdir ${nuttxdir}/pcode/libpas || \ # Copy runtime files -cp -a ${pascaldir}/include/poff.h ${pascaldir}/include/pofflib.h \ +cp -a ${pascaldir}/include/poff.h ${pascaldir}/include/pofflib.h \ ${pascaldir}/include/pedefs.h ${pascaldir}/include/perr.h \ - ${pascaldir}/include/pdefs.h ${pascaldir}/include/pfdefs.h \ + ${pascaldir}/include/pdefs.h ${pascaldir}/include/pfdefs.h \ ${pascaldir}/include/pxdefs.h ${pascaldir}/include/paslib.h \ ${nuttxdir}/pcode/include/. || \ { echo "Failed to copy ${pascaldir}/include" ; exit 1; } @@ -161,6 +161,6 @@ cp -a ${pascaldir}/${modeldir}/include/pexec.h ${pascaldir}/${modeldir}/include ${nuttxdir}/pcode/insn/include/. || \ { echo "Failed to copy ${pascaldir}/${modeldir}/include" ; exit 1; } -cp -a ${pascaldir}/${modeldir}/prun/pexec.c ${pascaldir}/${modeldir}/prun/pload.c \ +cp -a ${pascaldir}/${modeldir}/prun/pexec.c ${pascaldir}/${modeldir}/prun/pload.c \ ${pascaldir}/${modeldir}/prun/Make.defs ${nuttxdir}/pcode/insn/prun/. || \ { echo "Failed to copy ${pascaldir}/${modeldir}/prun" ; exit 1; } diff --git a/misc/pascal/pascal/Makefile b/misc/pascal/pascal/Makefile index 6029fb245..4c4eaf700 100644 --- a/misc/pascal/pascal/Makefile +++ b/misc/pascal/pascal/Makefile @@ -46,6 +46,10 @@ LIBDIR = $(PASCAL)/lib BINDIR-$(CONFIG_INSN16) = $(PASCAL)/bin16 BINDIR-$(CONFIG_INSN32) = $(PASCAL)/bin32 +# +# Tools +# +CFLAGS += -I. # # Objects and targets # diff --git a/misc/pascal/pascal/pas.h b/misc/pascal/pascal/pas.h new file mode 100644 index 000000000..5a4829948 --- /dev/null +++ b/misc/pascal/pascal/pas.h @@ -0,0 +1,114 @@ +/*************************************************************************** + * pas.h + * External Declarations associated with pas.c + * + * Copyright (C) 2008 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ***************************************************************************/ + +#ifndef __PAS_H +#define __PAS_H + +/*************************************************************************** + * Compilation Switches + ***************************************************************************/ + +#define LSTTOFILE 1 + +/*************************************************************************** + * Included Files + ***************************************************************************/ + +#include "pdefs.h" +#include "pofflib.h" + +/*************************************************************************** + * Definitions + ***************************************************************************/ + +/* This is a helper macro just to make things pretty in the source code */ + +#define FP0 (&fileState[0]) /* Main file description */ +#define FP (&fileState[includeIndex]) /* Current file description */ +#define FPP (&fileState[includeIndex-1]) /* Previous file description */ +#define IS_NESTED_UNIT ((includeIndex > 0) && (FP->kind == eIsUnit)) + +/*************************************************************************** + * Global Types + ***************************************************************************/ + +/*************************************************************************** + * Global Variable + ***************************************************************************/ + +extern uint16 token; /* Current token */ +extern uint16 tknSubType; /* Extended token type */ +extern sint32 tknInt; /* Integer token value */ +extern float64 tknReal; /* Real token value */ +extern STYPE *tknPtr; /* Pointer to symbol token */ +extern FTYPE files[MAX_FILES+1]; /* File Table */ +extern fileState_t fileState[MAX_INCL]; /* State of all open files */ + +/* sourceFileName : Source file name from command line + * includePath[] : Pathes to search when including file + */ + +extern char *sourceFileName; +extern char *includePath[MAX_INCPATHES]; + +extern poffHandle_t poffHandle; /* Handle for POFF object */ + +extern FILE *poffFile; /* POFF output file */ +extern FILE *errFile; /* Error file pointer */ +extern FILE *lstFile; /* List file pointer */ + +extern WTYPE withRecord; /* RECORD of WITH statement */ +extern sint16 level; /* Static nesting level */ +extern sint16 includeIndex; /* Include file index */ +extern sint16 nIncPathes; /* Number pathes in includePath[] */ +extern uint16 label; /* Last label number */ +extern sint16 nsym; /* Number symbol table entries */ +extern sint16 nconst; /* Number constant table entries */ +extern sint16 sym_strt; /* Symbol search start index */ +extern sint16 const_strt; /* Constant search start index */ +extern sint16 err_count; /* Error counter */ +extern sint16 nfiles; /* Program file counter */ +extern sint32 warn_count; /* Warning counter */ +extern sint32 dstack; /* data stack size */ + +/*************************************************************************** + * Global Function Prototypes + ***************************************************************************/ + +extern void openNestedFile (const char *fileName); +extern void closeNestedFile (void); + +#endif /* __PAS_H */ diff --git a/misc/pascal/pascal/pblck.h b/misc/pascal/pascal/pblck.h new file mode 100644 index 000000000..22b6b75b4 --- /dev/null +++ b/misc/pascal/pascal/pblck.h @@ -0,0 +1,51 @@ +/*************************************************************************** + * pblck.h + * External Declarations associated with pblck.c + * + * Copyright (C) 2008 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ***************************************************************************/ + +#ifndef __PBLCK_H +#define __PBLCK_H + +/*************************************************************************** + * Global Function Prototypes + ***************************************************************************/ + +extern void block(void); +extern void declarationGroup(sint32 beginLabel); +extern void constantDefinitionGroup(void); +extern void typeDefinitionGroup(void); +extern void variableDeclarationGroup(void); +extern sint16 formalParameterList(STYPE *procPtr); + +#endif /* __PBLCK_H */ diff --git a/misc/pascal/pascal/pexpr.h b/misc/pascal/pascal/pexpr.h new file mode 100644 index 000000000..dba1f1ee7 --- /dev/null +++ b/misc/pascal/pascal/pexpr.h @@ -0,0 +1,92 @@ +/*********************************************************************** + * pexpr.h + * External Declarations associated with pexpr.c + * + * Copyright (C) 2008 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ***********************************************************************/ + +#ifndef __PEXPR_H +#define __PEXPR_H + +/*********************************************************************** + * Type Definitions + ***********************************************************************/ + +typedef enum exprEnum +{ + exprUnknown = 0, /* TOS value unknown */ + exprAnyOrdinal, /* TOS = any ordinal type */ + exprAnyString, /* TOS = any string type */ + + exprInteger, /* TOS = integer value */ + exprReal, /* TOS = real value */ + exprChar, /* TOS = character value */ + exprBoolean, /* TOS = boolean(integer) value */ + exprScalar, /* TOS = scalar(integer) value */ + exprString, /* TOS = variable length string reference */ + exprStkString, /* TOS = reference to string on string stack */ + exprCString, /* TOS = pointer to C string */ + exprSet, /* TOS = set(integer) value */ + exprArray, /* TOS = array */ + exprRecord, /* TOS = record */ + + exprIntegerPtr, /* TOS = pointer to integer value */ + exprRealPtr, /* TOS = pointer to a real value */ + exprCharPtr, /* TOS = pointer to a character value */ + exprBooleanPtr, /* TOS = pointer to a boolean value */ + exprScalarPtr, /* TOS = pointer to a scalar value */ + exprSetPtr, /* TOS = pointer to a set value */ + exprArrayPtr, /* TOS = pointer to an array */ + exprRecordPtr /* TOS = pointer to a record */ +} exprType; + +/*********************************************************************** + * Global Variables + ***********************************************************************/ + +extern int constantToken; +extern sint32 constantInt; +extern float64 constantReal; +extern char *constantStart; + +/*********************************************************************** + * Global Function Protypes + ***********************************************************************/ + +extern exprType expression ( exprType findExprType, STYPE *typePtr ); +extern exprType varParm ( exprType varExprType, STYPE *typePtr ); +extern void arrayIndex ( sint32 size ); +extern exprType getExprType( STYPE *sType ); + +extern void constantExpression(void); + +#endif /* __PEXPR_H */ diff --git a/misc/pascal/pascal/pfunc.h b/misc/pascal/pascal/pfunc.h new file mode 100644 index 000000000..e6d3303e4 --- /dev/null +++ b/misc/pascal/pascal/pfunc.h @@ -0,0 +1,57 @@ +/*************************************************************************** + * pfunc.h + * External Declarations associated with pfunc.c + * + * Copyright (C) 2008 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ***************************************************************************/ + +#ifndef __PFUNC_H +#define __PFUNC_H + +/*************************************************************************** + * Included Files + ***************************************************************************/ + +#include "pexpr.h" /* For exprType */ + +/*************************************************************************** + * Global Function Prototypes + ***************************************************************************/ + +extern void primeBuiltInFunctions(void); +extern exprType builtInFunction(void); +extern void builtInFunctionOfConstant(void); + +extern void checkLParen(void); +extern void checkRParen(void); + +#endif /* __PFUNC_H */ diff --git a/misc/pascal/pascal/pgen.h b/misc/pascal/pascal/pgen.h new file mode 100644 index 000000000..055e14eb3 --- /dev/null +++ b/misc/pascal/pascal/pgen.h @@ -0,0 +1,92 @@ +/*************************************************************************** + * pgen.h + * External Declarations associated with pgen.c + * + * Copyright (C) 2008 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ***************************************************************************/ + +#ifndef __PGEN_H +#define __PGEN_H + +/*************************************************************************** + * Compilation Switches + ***************************************************************************/ + +/*************************************************************************** + * Included Files + ***************************************************************************/ + +#include "podefs.h" + +/*************************************************************************** + * Definitions + ***************************************************************************/ + +/*************************************************************************** + * Global Types + ***************************************************************************/ + +/*************************************************************************** + * Global Variable Prototypes + ***************************************************************************/ + +/*************************************************************************** + * Global Function Prototypes + ***************************************************************************/ + +extern sint32 pas_GetCurrentStackLevel(void); +extern void pas_InvalidateCurrentStackLevel(void); +extern void pas_SetCurrentStackLevel(sint32 dwLsp); +extern uint32 pas_GetNStackLevelChanges(void); + +extern void pas_GenerateSimple(enum pcode_e eOpCode); +extern void pas_GenerateDataOperation(enum pcode_e eOpCode, sint32 dwData); +extern void pas_GenerateDataSize(sint32 dwDataSize); +extern void pas_GenerateFpOperation(ubyte fpOpcode); +extern void pas_GenerateIoOperation(uint16 ioOpcode, uint16 fileNumber); +extern void pas_BuiltInFunctionCall(uint16 libOpcode); +extern void pas_GenerateLevelReference(enum pcode_e eOpCode, uint16 wLevel, + sint32 dwOffset); +extern void pas_GenerateStackReference(enum pcode_e eOpCode, STYPE *pVarPtr); +extern void pas_GenerateProcedureCall(STYPE *pProcPtr); +extern void pas_GenerateLineNumber(uint16 wIncludeNumber, + uint32 dwLineNumber); +extern void pas_GenerateStackExport(STYPE *pVarPtr); +extern void pas_GenerateStackImport(STYPE *pVarPtr); +extern void pas_GenerateProcedureCall(STYPE *pProcPtr); +extern void pas_GenerateDebugInfo(STYPE *pProcPtr, uint32 dwReturnSize); +extern void pas_GenerateProcExport(STYPE *pProcPtr); +extern void pas_GenerateProcImport(STYPE *pProcPtr); +extern void pas_GeneratePoffOutput(void); + +#endif /* __PGEN_H */ + diff --git a/misc/pascal/pascal/pprgm.h b/misc/pascal/pascal/pprgm.h new file mode 100644 index 000000000..7c4ef2ca0 --- /dev/null +++ b/misc/pascal/pascal/pprgm.h @@ -0,0 +1,47 @@ +/*************************************************************************** + * pprgm.h + * External Declarations associated with pprgm.c + * + * Copyright (C) 2008 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ***************************************************************************/ + +#ifndef __PPRGM_H +#define __PPRGM_H + +/*************************************************************************** + * Global Function Prototypes + ***************************************************************************/ + +extern void program(void); +extern void usesSection(void); + +#endif /* __PPRGM_H */ diff --git a/misc/pascal/pascal/pproc.h b/misc/pascal/pascal/pproc.h new file mode 100644 index 000000000..5ede20a57 --- /dev/null +++ b/misc/pascal/pascal/pproc.h @@ -0,0 +1,49 @@ +/*************************************************************************** + * pproc.h + * External Declarations associated with PPROC.C + * + * Copyright (C) 2008 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ***************************************************************************/ + +#ifndef __PPROC_H +#define __PPROC_H + +/*************************************************************************** + * Global Function Prototypes + ***************************************************************************/ + +extern void primeBuiltInProcedures(void); +extern void builtInProcedure(void); +extern int actualParameterSize(STYPE *procPtr, int parmNo); +extern int actualParameterList(STYPE *procPtr); + +#endif /* __PPROC_H */ diff --git a/misc/pascal/pascal/pstm.h b/misc/pascal/pascal/pstm.h new file mode 100644 index 000000000..6508db68a --- /dev/null +++ b/misc/pascal/pascal/pstm.h @@ -0,0 +1,47 @@ +/*************************************************************************** + * pstm.h + * External Declarations associated with pstm.c + * + * Copyright (C) 2008 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ***************************************************************************/ + +#ifndef __PSTM_H +#define __PSTM_H + +/*************************************************************************** + * Global Function Prototypes + ***************************************************************************/ + +extern void statement (void); /* Process Statement */ +extern void compoundStatement (void); /* Compound statement */ + +#endif /* __PSTM_H */ diff --git a/misc/pascal/pascal/ptbl.h b/misc/pascal/pascal/ptbl.h new file mode 100644 index 000000000..70d318846 --- /dev/null +++ b/misc/pascal/pascal/ptbl.h @@ -0,0 +1,78 @@ +/*************************************************************************** + * ptbl.h + * External Declarations associated with ptbl.c + * + * Copyright (C) 2008 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ***************************************************************************/ + +#ifndef __PTBL_H +#define __PTBL_H + +/*************************************************************************** + * Included Files + ***************************************************************************/ + +#include "config.h" + +/*************************************************************************** + * Global Variables + ***************************************************************************/ + +extern STYPE *parentInteger; +extern STYPE *parentString; + +/*************************************************************************** + * Global Function Prototypes + ***************************************************************************/ + +extern const RTYPE *findReservedWord (char *name); +extern STYPE *findSymbol (char *inName); +extern STYPE *addTypeDefine (char *name, ubyte type, uint16 size, + STYPE *parent); +extern STYPE *addConstant (char *name, ubyte type, sint32 *value, + STYPE *parent); +extern STYPE *addStringConst (char *name, uint32 offset, uint32 size); +extern STYPE *addFile (char *name, uint16 fileNumber); +extern STYPE *addLabel (char *name, uint16 label); +extern STYPE *addProcedure (char *name, ubyte type, uint16 label, + uint16 nParms, STYPE *parent); +extern STYPE *addVariable (char *name, ubyte type, uint16 offset, + uint16 size, STYPE *parent); +extern STYPE *addField (char *name, STYPE *record); +extern void primeSymbolTable (unsigned long symbolTableSize); +extern void verifyLabels (sint32 symIndex); + +#if CONFIG_DEBUG +extern void dumpTables (void); +#endif + +#endif /* __PTBL_H */ diff --git a/misc/pascal/pascal/ptdefs.h b/misc/pascal/pascal/ptdefs.h new file mode 100644 index 000000000..d7a079e13 --- /dev/null +++ b/misc/pascal/pascal/ptdefs.h @@ -0,0 +1,209 @@ +/*********************************************************************** + * ptdefs.h + * Token and Symbol Table Definitions + * + * Copyright (C) 2008 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ***********************************************************************/ + +#ifndef __PTDEFS_H +#define __PTDEFS_H + +/***********************************************************************/ +/* Token Values 0-0x20 reserved for get_token identification */ + +#define tIDENT 0x01 +#define tINT_CONST 0x02 +#define tCHAR_CONST 0x03 +#define tBOOLEAN_CONST 0x04 +#define tREAL_CONST 0x05 +#define tSTRING_CONST 0x06 + +#define tLE 0x07 +#define tGE 0x08 +#define tASSIGN 0x09 +#define tSUBRANGE 0x0A + +/* Token Values 0x21-0x2F (except 0x24) are for ASCII character tokens */ + +#define tNE ('#') +#define SQUOTE 0x27 +#define tMUL ('*') +#define tFDIV ('/') + +/* Token Values 0x30-0x39 are spare */ +/* Token Values 0x3A-0x40 are for ASCII character tokens */ + +#define tLT ('<') +#define tEQ ('=') +#define tGT ('>') + +/* Token Values 0x41-0x5A are SYMBOL TABLE definitions */ + +#define sPROC 0x41 +#define sFUNC 0x42 +#define sLABEL 0x43 +#define sTYPE 0x44 +#define sFILE 0x45 +#define sINT 0x46 +#define sBOOLEAN 0x47 +#define sCHAR 0x48 +#define sREAL 0x49 +#define sTEXT 0x4a +#define sSTRING 0x4b /* String storage type */ +#define sRSTRING 0x4c /* String reference type */ +#define sSTRING_CONST 0x4d +#define sPOINTER 0x4e +#define sSCALAR 0x4f +#define sSCALAR_OBJECT 0x50 +#define sSUBRANGE 0x51 +#define sSET_OF 0x52 +#define sARRAY 0x53 +#define sRECORD 0x54 +#define sRECORD_OBJECT 0x55 +#define sFILE_OF 0x56 +#define sVAR_PARM 0x57 + +/* Token Values 0x5B-0x60 (except 0x5F) are for ASCII character tokens */ +/* Token Values 0x61-0x7a are SYMBOL TABLE definitions */ + +/* Token Values 0x7b-0x7f are for ASCII character tokens */ +/* Token Value 0x7f is spare */ + +/* Token Values 0x80-0xef are for RESERVED WORDS */ + +/* Standard constants (TRUE, FALSE, MAXINT) and standard files (INPUT, OUTPUT) + * are hard initialized into the constant/symbol table and are transparent + * to the compiler */ + +/* Reserved Words 0x80-0xaf*/ + +#define tAND 0x80 +#define tARRAY 0x81 +#define tBEGIN 0x82 +#define tCASE 0x83 +#define tCONST 0x84 +#define tDIV 0x85 +#define tDO 0x86 +#define tDOWNTO 0x87 +#define tELSE 0x88 +#define tEND 0x89 +#define tFILE 0x8a +#define tFOR 0x8b +#define tFUNCTION 0x8c +#define tGOTO 0x8d +#define tIF 0x8e +#define tIMPLEMENTATION 0x08f /* Extended pascal */ +#define tIN 0x90 +#define tINTERFACE 0x91 /* Extended pascal */ +#define tLABEL 0x92 +#define tMOD 0x93 +#define tNIL 0x94 +#define tNOT 0x95 +#define tOF 0x96 +#define tOR 0x97 +#define tPACKED 0x98 +#define tPROCEDURE 0x99 +#define tPROGRAM 0x9a +#define tRECORD 0x9b +#define tREPEAT 0x9c +#define tSET 0x9d +#define tSHL 0x9e +#define tSHR 0x9f +#define tTHEN 0xa0 +#define tTO 0xa1 +#define tTYPE 0xa2 +#define tUNIT 0xa3 /* Extended pascal */ +#define tUNTIL 0xa4 +#define tUSES 0xa5 /* Extended pascal */ +#define tVAR 0xa6 +#define tWHILE 0xa7 +#define tWITH 0xa8 + +/* The following codes indicate that the token is a built-in procedure + * or function recognized by the compiler. An additional code will be + * place in tknSubType by the tokenizer to indicate which built-in + * procedure or function applies. + */ + +#define tFUNC 0xb0 +#define tPROC 0xb1 + +/***********************************************************************/ +/* Codes to indentify built-in functions and procedures */ + +#define txNONE 0x00 + +/* Standard Functions 0x01-0x1f*/ + +#define txABS 0x01 +#define txARCTAN 0x02 +#define txCHR 0x03 +#define txCOS 0x04 +#define txEOF 0x05 +#define txEOLN 0x06 +#define txEXP 0x07 +#define txLN 0x08 +#define txODD 0x09 +#define txORD 0x0a +#define txPRED 0x0b +#define txROUND 0x0c +#define txSIN 0x0d +#define txSQR 0x0e +#define txSQRT 0x0f +#define txSUCC 0x10 +#define txTRUNC 0x11 + +/* "Less than standard" Functions 0x20-0x7f */ + +#define txGETENV 0x20 + +/* Standard Procedures 0x81-0xbf */ + +#define txGET 0x80 +#define txNEW 0x81 +#define txPACK 0x82 +#define txPAGE 0x83 +#define txPUT 0x84 +#define txREAD 0x85 +#define txREADLN 0x86 +#define txRESET 0x87 +#define txREWRITE 0x88 +#define txUNPACK 0x89 +#define txWRITE 0x8a +#define txWRITELN 0x8b + +/* "Less than standard" Procedures 0xc0-0xff */ + +#define txVAL 0xc0 + +#endif /* __PTDEFS_H */ + diff --git a/misc/pascal/pascal/ptkn.h b/misc/pascal/pascal/ptkn.h new file mode 100644 index 000000000..d30333e0c --- /dev/null +++ b/misc/pascal/pascal/ptkn.h @@ -0,0 +1,58 @@ +/*************************************************************************** + * ptkn.h + * External Declarations associated with ptkn.c + * + * Copyright (C) 2008 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ***************************************************************************/ + +#ifndef __PTKN_H +#define __PTKN_H + +/*************************************************************************** + * Public Variables + ***************************************************************************/ + +/* String stack access variables */ + +extern char *tkn_strt; /* Start of token in string stack */ +extern char *stringSP; /* Top of string stack */ + +/*************************************************************************** + * Public Function Prototypes + ***************************************************************************/ + +extern void getToken (void); +extern char getNextCharacter (boolean skipWhiteSpace); +extern sint16 primeTokenizer (unsigned long stringStackSize); +extern sint16 rePrimeTokenizer (void); + +#endif /* __PTKN_H */ diff --git a/misc/pascal/pascal/punit.h b/misc/pascal/pascal/punit.h new file mode 100644 index 000000000..128ec7198 --- /dev/null +++ b/misc/pascal/pascal/punit.h @@ -0,0 +1,51 @@ +/*************************************************************************** + * punit.h + * External Declarations associated with punit.c + * + * Copyright (C) 2008 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ***************************************************************************/ + +#ifndef __PUNIT_H +#define __PUNIT_H + +/*************************************************************************** + * Public Types + ***************************************************************************/ + +/*************************************************************************** + * Global Function Prototypes + ***************************************************************************/ + +extern void unitImplementation(void); +extern void unitInterface(void); + +#endif /* __PUNIT_H */ diff --git a/misc/pascal/plink/Makefile b/misc/pascal/plink/Makefile index 9b76aa6a0..260639417 100644 --- a/misc/pascal/plink/Makefile +++ b/misc/pascal/plink/Makefile @@ -46,6 +46,11 @@ LIBDIR = $(PASCAL)/lib BINDIR-$(CONFIG_INSN16) = $(PASCAL)/bin16 BINDIR-$(CONFIG_INSN32) = $(PASCAL)/bin32 +# +# Tools +# +CFLAGS += -I. + # # Objects and targets # diff --git a/misc/pascal/plink/plink.h b/misc/pascal/plink/plink.h new file mode 100644 index 000000000..350bce461 --- /dev/null +++ b/misc/pascal/plink/plink.h @@ -0,0 +1,52 @@ +/*************************************************************************** + * plink.h + * External Declarations associated with plink.c + * + * Copyright (C) 2008 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ***************************************************************************/ + +#ifndef __PLINK_H +#define __PLINK_H + +/*************************************************************************** + * Included Files + ***************************************************************************/ + +/*************************************************************************** + * Global Variables + ***************************************************************************/ + +/*************************************************************************** + * Global Function Prototypes + ***************************************************************************/ + +#endif /* __PLINK_H */ diff --git a/misc/pascal/plink/plreloc.h b/misc/pascal/plink/plreloc.h new file mode 100644 index 000000000..1998361b9 --- /dev/null +++ b/misc/pascal/plink/plreloc.h @@ -0,0 +1,59 @@ +/*************************************************************************** + * plreloc.h + * External Declarations associated with plreloc.c + * + * Copyright (C) 2008 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ***************************************************************************/ + +#ifndef __PLRELOC_H +#define __PLRELOC_H + +/*************************************************************************** + * Included Files + ***************************************************************************/ + +#include "pofflib.h" + +/*************************************************************************** + * Global Variables + ***************************************************************************/ + +/*************************************************************************** + * Global Function Prototypes + ***************************************************************************/ + +extern void mergeRelocations(poffHandle_t inHandle, + uint32 pcOffset, uint32 symOffset); +extern void applyRelocations(poffHandle_t outHandle); +extern void releaseRelocations(void); + +#endif /* __PLRELOC_H */ diff --git a/misc/pascal/plink/plsym.h b/misc/pascal/plink/plsym.h new file mode 100644 index 000000000..96f520148 --- /dev/null +++ b/misc/pascal/plink/plsym.h @@ -0,0 +1,61 @@ +/*************************************************************************** + * plsym.h + * External Declarations associated with plsym.c + * + * Copyright (C) 2008 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ***************************************************************************/ + +#ifndef __PLSYM_H +#define __PLSYM_H + +/*************************************************************************** + * Included Files + ***************************************************************************/ + +#include "pofflib.h" + +/*************************************************************************** + * Global Variables + ***************************************************************************/ + +/*************************************************************************** + * Global Function Prototypes + ***************************************************************************/ + +extern uint32 mergeSymbols(poffHandle_t inHandle, + uint32 pcOffset, uint32 symOffset); +extern void verifySymbols(void); +extern void writeSymbols(poffHandle_t outHandle); +extern poffLibSymbol_t *getSymbolByIndex(uint32 symIndex); +extern void releaseSymbols(void); + +#endif /* __PLSYM_H */ -- cgit v1.2.3