Add .gitattributes

This commit is contained in:
Zeex 2014-01-10 01:44:21 +07:00
parent 05e34102d4
commit 8fefb73592
13 changed files with 4976 additions and 4975 deletions

1
.gitattributes vendored Normal file
View File

@ -0,0 +1 @@
* text=auto

File diff suppressed because it is too large Load Diff

View File

@ -1,35 +1,35 @@
The software toolkit "Pawn" (the compiler, the abstract machine and the The software toolkit "Pawn" (the compiler, the abstract machine and the
documentation) are copyright (c) 1997-2006 by ITB CompuPhase. The Intel documentation) are copyright (c) 1997-2006 by ITB CompuPhase. The Intel
assembler implementation of the abstract machine and the just-in-time assembler implementation of the abstract machine and the just-in-time
compiler (specifically the files AMXEXEC.ASM, JITR.ASM and JITS.ASM) are compiler (specifically the files AMXEXEC.ASM, JITR.ASM and JITS.ASM) are
copyright (c) 1998-2003 Marc Peter. The file JITSN.ASM is translated from copyright (c) 1998-2003 Marc Peter. The file JITSN.ASM is translated from
JITS.ASM and is partially copyright G.W.M. Vissers. The file AMXEXECN.ASM JITS.ASM and is partially copyright G.W.M. Vissers. The file AMXEXECN.ASM
is translated from AMXEXEC.ASM and is partially copyright ITB CompuPhase. is translated from AMXEXEC.ASM and is partially copyright ITB CompuPhase.
Pawn is distributed under the "zLib/libpng" license, which is reproduced Pawn is distributed under the "zLib/libpng" license, which is reproduced
below: below:
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
This software is provided "as-is", without any express or implied warranty. This software is provided "as-is", without any express or implied warranty.
In no event will the authors be held liable for any damages arising from In no event will the authors be held liable for any damages arising from
the use of this software. the use of this software.
Permission is granted to anyone to use this software for any purpose, Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions: freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not 1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software in claim that you wrote the original software. If you use this software in
a product, an acknowledgment in the product documentation would be a product, an acknowledgment in the product documentation would be
appreciated but is not required. appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not 2. Altered source versions must be plainly marked as such, and must not
be misrepresented as being the original software. be misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution. 3. This notice may not be removed or altered from any source distribution.
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
The zLib/libpng license has been approved by the "Open Source Initiative" The zLib/libpng license has been approved by the "Open Source Initiative"
organization. organization.

View File

@ -1,297 +1,297 @@
the Pawn embedded scripting language the Pawn embedded scripting language
==================================== ====================================
Pawn is a simple, typeless, 32-bit extension language with a C-like syntax. Pawn is a simple, typeless, 32-bit extension language with a C-like syntax.
The Pawn compiler outputs P-code (or bytecode) that subsequently runs on an The Pawn compiler outputs P-code (or bytecode) that subsequently runs on an
abstract machine. Execution speed, stability, simplicity and a small footprint abstract machine. Execution speed, stability, simplicity and a small footprint
were essential design criterions for both the language and the abstract were essential design criterions for both the language and the abstract
machine. machine.
Through the evolution of the Pawn toolkit, this README had steadily been Through the evolution of the Pawn toolkit, this README had steadily been
growing, as more and more compilers were tested and more components were added. growing, as more and more compilers were tested and more components were added.
More recently, the compiling instructions were moved to a separate document More recently, the compiling instructions were moved to a separate document
entitled "The Pawn booklet: Implementor's Guide". To get the Pawn toolkit entitled "The Pawn booklet: Implementor's Guide". To get the Pawn toolkit
working on your system, please (also) consult that document. To learn about working on your system, please (also) consult that document. To learn about
the Pawn language, read the document "The Pawn booklet: The Language". If you the Pawn language, read the document "The Pawn booklet: The Language". If you
installed Pawn via the Setup utility (for Microsoft Windows) or the autopackage installed Pawn via the Setup utility (for Microsoft Windows) or the autopackage
(for Linux), you probably have these documents already. Otherwise, you can (for Linux), you probably have these documents already. Otherwise, you can
obtain both these documents from the web page devoted to Pawn: obtain both these documents from the web page devoted to Pawn:
http://www.compuphase.com/pawn.htm http://www.compuphase.com/pawn.htm
Below is a list of topics that this README covers, in this order: Below is a list of topics that this README covers, in this order:
o Getting started o Getting started
How to get your first Pawn program running How to get your first Pawn program running
o Building with CMake o Building with CMake
For a portable way to (re-)build the software For a portable way to (re-)build the software
o Acknowledgements o Acknowledgements
For components not written by CompuPhase For components not written by CompuPhase
o Using the AMX DLL o Using the AMX DLL
How to create a program that uses the pre-built DLL. How to create a program that uses the pre-built DLL.
o Building the AMX DLL o Building the AMX DLL
Notes on how the DLL must be built itself. Notes on how the DLL must be built itself.
o Building extension modules for the AMX DLL o Building extension modules for the AMX DLL
Getting started Getting started
=============== ===============
The first question is: what do you need? If you are using Microsoft Windows, The first question is: what do you need? If you are using Microsoft Windows,
download the Pawn toolkit as a self-extracting setup file; this gives download the Pawn toolkit as a self-extracting setup file; this gives
everything that you need to get started: everything that you need to get started:
o binaries for Win32 o binaries for Win32
o full source of all tools/libraries o full source of all tools/libraries
o documentation (Adobe Acrobat format) o documentation (Adobe Acrobat format)
Users of other operating systems should download either the "pawnkit.zip" Users of other operating systems should download either the "pawnkit.zip"
file or the "pawnkit.tgz" file ("Pawn toolkit" archives), because it file or the "pawnkit.tgz" file ("Pawn toolkit" archives), because it
contains the full source code. The difference between the "ZIP" file and the contains the full source code. The difference between the "ZIP" file and the
"TGZ" file is, apart from the different archiving tool used, that the source "TGZ" file is, apart from the different archiving tool used, that the source
file in the ZIP file has DOS/Windows line endings (CR/LF) and the "TGZ" file file in the ZIP file has DOS/Windows line endings (CR/LF) and the "TGZ" file
has Unix line endings (LF only). When "unpacking" these archives, make sure has Unix line endings (LF only). When "unpacking" these archives, make sure
that the directory structure in the ZIP/TGZ files is retained. Otherwise, the that the directory structure in the ZIP/TGZ files is retained. Otherwise, the
Pawn compiler will not be able to find its "include" files, for example. Pawn compiler will not be able to find its "include" files, for example.
You should also download the two documentation files "pawn-lng.pdf" and You should also download the two documentation files "pawn-lng.pdf" and
"pawn-imp.pdf" --the "Language guide" and the "Implementor's guide" "pawn-imp.pdf" --the "Language guide" and the "Implementor's guide"
respectively. You may need to build the compiler and abstract machine, and respectively. You may need to build the compiler and abstract machine, and
the "Implementor's guide" is likely to give you precise guidelines (or at the "Implementor's guide" is likely to give you precise guidelines (or at
least, it will point you in the right direction). There are a few guidelines least, it will point you in the right direction). There are a few guidelines
for building the system with CMake in the section "Building with CMake", below. for building the system with CMake in the section "Building with CMake", below.
Assuming that you have obtained (somehow) an executable version of the Pawn Assuming that you have obtained (somehow) an executable version of the Pawn
compiler and the Pawn run-time, you should put it in a directory. However, compiler and the Pawn run-time, you should put it in a directory. However,
the Pawn compiler also needs to locate "include files". On many operating the Pawn compiler also needs to locate "include files". On many operating
systems, the Pawn compiler is able to automatically read these header files systems, the Pawn compiler is able to automatically read these header files
from the directory "include" that is below the directory that the compiler is from the directory "include" that is below the directory that the compiler is
in itself. Thus, if the Pawn compiler (the executable file) is in directory in itself. Thus, if the Pawn compiler (the executable file) is in directory
"C:\WhatEver\Pawn\bin", I suggest that you create either the directory "C:\WhatEver\Pawn\bin", I suggest that you create either the directory
"C:\WhatEver\Pawn\include" or "C:\WhatEver\Pawn\bin\include" and copy the "C:\WhatEver\Pawn\include" or "C:\WhatEver\Pawn\bin\include" and copy the
".inc" files there. If your operating system is not compatible with Win32 or ".inc" files there. If your operating system is not compatible with Win32 or
Linux, the Pawn compiler may not know how to locate the "include" directory Linux, the Pawn compiler may not know how to locate the "include" directory
and you have to specify it yourself with the "-i" command line option (when and you have to specify it yourself with the "-i" command line option (when
running the compiler). running the compiler).
That behind your back, locate one of the example scripts (e.g. "hello.p") and That behind your back, locate one of the example scripts (e.g. "hello.p") and
compile it with: compile it with:
pawncc hello pawncc hello
This should produce "hello.amx", which you can then run with: This should produce "hello.amx", which you can then run with:
pawnrun hello.amx pawnrun hello.amx
Many applications that use Pawn, run the Pawn compiler as a child process; Many applications that use Pawn, run the Pawn compiler as a child process;
i.e. the Pawn compiler is often a separate, self-contained program. The i.e. the Pawn compiler is often a separate, self-contained program. The
abstract machine, however, is almost never a separate process: typically you abstract machine, however, is almost never a separate process: typically you
want the abstract machine to be integrated in the application so that scripts want the abstract machine to be integrated in the application so that scripts
can call into the application. In other words, you might be using "pawncc" as can call into the application. In other words, you might be using "pawncc" as
is, but you won't be using "pawnrun" as is. This is why pawnrun is kept short is, but you won't be using "pawnrun" as is. This is why pawnrun is kept short
and dump, "pawnrun" is a program that is mostly developed in the Pawn manual to and dump, "pawnrun" is a program that is mostly developed in the Pawn manual to
show you what you should do at a minimum to embed Pawn into a program. show you what you should do at a minimum to embed Pawn into a program.
Building with CMake Building with CMake
=================== ===================
CMake is a cross-platform, open-source make system, which generates "makefile's" CMake is a cross-platform, open-source make system, which generates "makefile's"
or project files for diverse compilers and platforms. See http://www.cmake.org/ or project files for diverse compilers and platforms. See http://www.cmake.org/
for more information on CMake plus a freely downloadable copy. for more information on CMake plus a freely downloadable copy.
The Pawn toolkit comes with a CMake project file that builds the compiler, a The Pawn toolkit comes with a CMake project file that builds the compiler, a
simple run-time program that embeds the abstract machine, and a simple console simple run-time program that embeds the abstract machine, and a simple console
debugger. The CMake project file is in the "source" subdirectory of where the debugger. The CMake project file is in the "source" subdirectory of where the
Pawn toolkit is installed, when you installed the self-extracting "setup" for Pawn toolkit is installed, when you installed the self-extracting "setup" for
Microsoft Windows. When unpacking the Pawn source code from a "ZIP" or "TGZ" Microsoft Windows. When unpacking the Pawn source code from a "ZIP" or "TGZ"
archive, the CMake project file is in the main directory where you unpacked archive, the CMake project file is in the main directory where you unpacked
the archive into. the archive into.
Microsoft Windows Microsoft Windows
----------------- -----------------
1. Launch CMakeSetup. 1. Launch CMakeSetup.
2. Select for the source code directory, the "source" subdirectory in the 2. Select for the source code directory, the "source" subdirectory in the
directory tree for the toolkit. directory tree for the toolkit.
For example, if you installed the toolkit in C:\Pawn, the source directory For example, if you installed the toolkit in C:\Pawn, the source directory
is C:\Pawn\source. is C:\Pawn\source.
3. Select as destination the "bin" subdirectory, or any other directory of your 3. Select as destination the "bin" subdirectory, or any other directory of your
choice. The makefile (or project files) will be generated in the destination choice. The makefile (or project files) will be generated in the destination
directory. directory.
4. Select the compiler to use, as well. On Microsoft Windows, CMake supports 4. Select the compiler to use, as well. On Microsoft Windows, CMake supports
Microsoft and Borland compilers, as well as GNU GCC. Microsoft and Borland compilers, as well as GNU GCC.
5. Click on the "Configure" button. After an initial configuration, you may 5. Click on the "Configure" button. After an initial configuration, you may
have items displayed in red. By this, CMake indicates that these items have items displayed in red. By this, CMake indicates that these items
may need adjustment, but in the case of Pawn, this is rarely needed. Click may need adjustment, but in the case of Pawn, this is rarely needed. Click
"Configure" once more for the final configuration. "Configure" once more for the final configuration.
6. Click on the "OK" button. This exits the CMakeSetup program after creating a 6. Click on the "OK" button. This exits the CMakeSetup program after creating a
number of files in the destination subdirectory. number of files in the destination subdirectory.
7. Build the program in the usual way. For Microsoft Visual C/C++, CMake has 7. Build the program in the usual way. For Microsoft Visual C/C++, CMake has
created a Visual Studio project and "Workspace" file; for other compilers created a Visual Studio project and "Workspace" file; for other compilers
CMake builds a makefile. CMake builds a makefile.
Linux / Unix Linux / Unix
------------ ------------
1. Change to the "bin" subdirectory where the archive was extracted into. For 1. Change to the "bin" subdirectory where the archive was extracted into. For
example, if you unpacked the toolkit in /opt/Pawn, go to /opt/Pawn/bin. example, if you unpacked the toolkit in /opt/Pawn, go to /opt/Pawn/bin.
If you installed Pawn as root, then you must also be root when you recompile If you installed Pawn as root, then you must also be root when you recompile
Pawn. Pawn.
2. Launch "ccmake ../source" if you installed the Linux autopackage. If you got 2. Launch "ccmake ../source" if you installed the Linux autopackage. If you got
the "tarball", you may need to use "ccmake .." instead. The parameter of the "tarball", you may need to use "ccmake .." instead. The parameter of
ccmake must be the relative path to where the CMakeLists.txt file is found. ccmake must be the relative path to where the CMakeLists.txt file is found.
3. Press the "c" key for "configure". After an initial configuration, you may 3. Press the "c" key for "configure". After an initial configuration, you may
have items in the list that have a "*" in front of their value. By this, have items in the list that have a "*" in front of their value. By this,
CMake indicates that these items may need adjustment, but in the case of CMake indicates that these items may need adjustment, but in the case of
Pawn, this is rarely needed. Type "c" once more for the final configuration. Pawn, this is rarely needed. Type "c" once more for the final configuration.
4. Press the "g" button for "generate and quit". Then build the program by 4. Press the "g" button for "generate and quit". Then build the program by
typing "make". The programs will be built in the subdirectory "bin". typing "make". The programs will be built in the subdirectory "bin".
Acknowledgements Acknowledgements
================ ================
This work is based on the "Small C Compiler" by Ron Cain and James E. Hendrix, This work is based on the "Small C Compiler" by Ron Cain and James E. Hendrix,
as published in the book "Dr. Dobb's Toolbook of C", Brady Books, 1986. as published in the book "Dr. Dobb's Toolbook of C", Brady Books, 1986.
The assembler version of the abstract machine (five times faster than the ANSI The assembler version of the abstract machine (five times faster than the ANSI
C version and over two times faster than the GNU C version) was written by C version and over two times faster than the GNU C version) was written by
Marc Peter (macpete@gmx.de). Marc holds the copyright of the file AMXEXEC.ASM, Marc Peter (macpete@gmx.de). Marc holds the copyright of the file AMXEXEC.ASM,
but its distribution and license fall under the same conditions as those but its distribution and license fall under the same conditions as those
stated in LICENSE.TXT. stated in LICENSE.TXT.
The Just-In-Time compiler (JIT) included in this release was also written by The Just-In-Time compiler (JIT) included in this release was also written by
Marc Peter. As is apparent from the source code, the JIT is an evolutionary Marc Peter. As is apparent from the source code, the JIT is an evolutionary
step from his earlier abstract machine. The JIT falls under the same (liberal) step from his earlier abstract machine. The JIT falls under the same (liberal)
license as the other components in the Pawn toolkit. The abstract machine license as the other components in the Pawn toolkit. The abstract machine
has evolved slightly since Marc Peter write the JIT and the JIT does currently has evolved slightly since Marc Peter write the JIT and the JIT does currently
not handle the "sleep" instruction correctly. not handle the "sleep" instruction correctly.
The power user David "Bailopan" Anderson (see www.bailopan.net) found many bugs The power user David "Bailopan" Anderson (see www.bailopan.net) found many bugs
in Pawn, and provided patches and detailed reports. He and his team also in Pawn, and provided patches and detailed reports. He and his team also
provided a new "memory file" module that make the compiler process large scripts provided a new "memory file" module that make the compiler process large scripts
quicker. quicker.
G.W.M. Vissers translated Marc Peter's JIT to NASM. This makes the JIT available G.W.M. Vissers translated Marc Peter's JIT to NASM. This makes the JIT available
to Linux and Unix-like platforms. to Linux and Unix-like platforms.
Greg Garner from Artran Inc. compiled the source files as C++ files (rather Greg Garner from Artran Inc. compiled the source files as C++ files (rather
than C), added type casts where needed and fixed two bugs in the Pawn compiler than C), added type casts where needed and fixed two bugs in the Pawn compiler
in the process. Greg Garner also wrote (and contributed) the extension module in the process. Greg Garner also wrote (and contributed) the extension module
for floating point support (files FLOAT.CPP and FLOAT.INC). I am currently for floating point support (files FLOAT.CPP and FLOAT.INC). I am currently
maintaining these modules, in order to keep them up to date with new features maintaining these modules, in order to keep them up to date with new features
in the Pawn toolkit. in the Pawn toolkit.
Dark Fiber contributed an extension module for the AMX to provide decent Dark Fiber contributed an extension module for the AMX to provide decent
quality pseudo-random numbers, starting with any seed. To illustrate the quality pseudo-random numbers, starting with any seed. To illustrate the
module, he also wrote a simple card game (TWENTY1.SMA) as a non-trivial module, he also wrote a simple card game (TWENTY1.SMA) as a non-trivial
Pawn script. Pawn script.
Dieter Neubauer made a 16-bit version of the Pawn tools (meaning that a cell Dieter Neubauer made a 16-bit version of the Pawn tools (meaning that a cell
is 16-bit, instead of the default 32-bit). His changes were merged in the is 16-bit, instead of the default 32-bit). His changes were merged in the
original distribution. Note that fixed or floating point arithmetic will be original distribution. Note that fixed or floating point arithmetic will be
near to impossible with a 16-bit cell. near to impossible with a 16-bit cell.
Robert Daniels ported Pawn to ucLinux and corrected a few errors that had to Robert Daniels ported Pawn to ucLinux and corrected a few errors that had to
do with the "Endianness" of the CPU. His corrections make the Pawn compiler do with the "Endianness" of the CPU. His corrections make the Pawn compiler
and abstract machine better portable to Big Endian machines. and abstract machine better portable to Big Endian machines.
Frank Condello made a port of the Pawn toolkit to MacOS (CFM Carbon). His Frank Condello made a port of the Pawn toolkit to MacOS (CFM Carbon). His
changes are merged into the main source trunk. changes are merged into the main source trunk.
Using the AMX DLL Using the AMX DLL
================= =================
The 32-bit AMX DLL (file AMX32.DLL) uses __stdcall calling convention, which The 32-bit AMX DLL (file AMX32.DLL) uses __stdcall calling convention, which
is the most common calling convention for Win32 DLLs. If your compiler defaults is the most common calling convention for Win32 DLLs. If your compiler defaults
to a different calling convention (most do), you must specify the __stdcall to a different calling convention (most do), you must specify the __stdcall
calling convention explicitly. This can be done in two ways: calling convention explicitly. This can be done in two ways:
1. a command line option for the C/C++ compiler (look up the manual) 1. a command line option for the C/C++ compiler (look up the manual)
2. setting the macros AMX_NATIVE_CALL and AMXAPI to __stdcall before including 2. setting the macros AMX_NATIVE_CALL and AMXAPI to __stdcall before including
AMX.H. The macros AMX_NATIVE_CALL and AMXAPI are explained earlier in this AMX.H. The macros AMX_NATIVE_CALL and AMXAPI are explained earlier in this
README. README.
The 32-bit AMX DLL comes with import libraries for various Win32 compilers: The 32-bit AMX DLL comes with import libraries for various Win32 compilers:
o for Microsoft Visual C/C++ version 4.0 and above, use AMX32M.LIB o for Microsoft Visual C/C++ version 4.0 and above, use AMX32M.LIB
o for Borland C++ version 5.0 and for Borland C++ Builder, use AMX32B.LIB o for Borland C++ version 5.0 and for Borland C++ Builder, use AMX32B.LIB
o for Watcom C/C++ version 10.6 and 11.0, use AMX32W.LIB o for Watcom C/C++ version 10.6 and 11.0, use AMX32W.LIB
The AMX DLL already includes "core" and "console" functions, which are the The AMX DLL already includes "core" and "console" functions, which are the
equivalents of the C files AMXCORE.C and AMXCONS.C. Console output goes to a equivalents of the C files AMXCORE.C and AMXCONS.C. Console output goes to a
text window (with 30 lines of 80 characters per line) that the DLL creates. text window (with 30 lines of 80 characters per line) that the DLL creates.
The core and console functions are automatically registered to any Pawn The core and console functions are automatically registered to any Pawn
program by amx_Init(). program by amx_Init().
Microsoft Visual C/C++ version 5.0 or 6.0, 32-bit: Microsoft Visual C/C++ version 5.0 or 6.0, 32-bit:
cl -DAMXAPI=__stdcall prun-dll.c amx32m.lib cl -DAMXAPI=__stdcall prun-dll.c amx32m.lib
(Note: the "prun-dll" example does not register additional native (Note: the "prun-dll" example does not register additional native
functions. Therefore, AMX_NATIVE_CALL does not need to be defined.) functions. Therefore, AMX_NATIVE_CALL does not need to be defined.)
Watcom C/C++ version 11.0, 32-bit: Watcom C/C++ version 11.0, 32-bit:
wcl386 /l=nt_win /dAMXAPI=__stdcall prun-dll.c amx32w.lib wcl386 /l=nt_win /dAMXAPI=__stdcall prun-dll.c amx32w.lib
(Note: the "prun-dll" example does not register additional native (Note: the "prun-dll" example does not register additional native
functions. Therefore, AMX_NATIVE_CALL does not need to be defined.) functions. Therefore, AMX_NATIVE_CALL does not need to be defined.)
Borland C++ version 3.1, 16-bit: Borland C++ version 3.1, 16-bit:
bcc -DAMXAPI=__cdecl -W -ml prun-dll.c amx16.lib bcc -DAMXAPI=__cdecl -W -ml prun-dll.c amx16.lib
(Note: the program must be compiled as a Win16 application, because (Note: the program must be compiled as a Win16 application, because
only Windows programs can use DLLs (option -W). Using large memory only Windows programs can use DLLs (option -W). Using large memory
model, option -ml, is not strictly required, but it is the most model, option -ml, is not strictly required, but it is the most
convenient. Finally, note that the 16-bit DLL uses __cdecl calling convenient. Finally, note that the 16-bit DLL uses __cdecl calling
convention for its exported functions, for reasons explained below.) convention for its exported functions, for reasons explained below.)
Building the AMX DLL Building the AMX DLL
==================== ====================
The 32-bit DLL is made from the files AMX.C, AMXDLL.C, AMXCONS.C, AMXCORE.C The 32-bit DLL is made from the files AMX.C, AMXDLL.C, AMXCONS.C, AMXCORE.C
and AMXEXEC.ASM. and AMXEXEC.ASM.
The first point to address is, again, that of calling conventions. AMXAPI and The first point to address is, again, that of calling conventions. AMXAPI and
AMX_NATIVE_CALL must be set to __stdcall. I did this by adding the macros onto AMX_NATIVE_CALL must be set to __stdcall. I did this by adding the macros onto
the command line for the compiler, but you could also create an include file the command line for the compiler, but you could also create an include file
with these macros before including AMX.H. with these macros before including AMX.H.
The function amx_Init() of the DLL is not identical to the standard version: The function amx_Init() of the DLL is not identical to the standard version:
it also registers the "core" and "console" modules and registers external it also registers the "core" and "console" modules and registers external
libraries if it can find these. The original amx_Init() in AMX.C is renamed to libraries if it can find these. The original amx_Init() in AMX.C is renamed to
amx_InitAMX(), via macros, at compile time. AMXDLL.C implements the new amx_InitAMX(), via macros, at compile time. AMXDLL.C implements the new
amx_Init() and this one is not translated. amx_Init() and this one is not translated.
All in all, the makefile for the AMX DLL plays a few tricks with macros in All in all, the makefile for the AMX DLL plays a few tricks with macros in
order to keep the original distribution untouched. When you need to recompile order to keep the original distribution untouched. When you need to recompile
the AMX DLL, you may, of course, also opt for modifying AMX.H and AMX.C to the AMX DLL, you may, of course, also opt for modifying AMX.H and AMX.C to
suit the needs for Win32 DLLs. suit the needs for Win32 DLLs.
If you rebuild the DLL for 16-bit Windows, keep the following points in mind: If you rebuild the DLL for 16-bit Windows, keep the following points in mind:
o You must use the ANSI C version of the abstract machine; there is no o You must use the ANSI C version of the abstract machine; there is no
16-bit assembler implementation. 16-bit assembler implementation.
o Use large memory model: pointers used in "interface" functions must be far o Use large memory model: pointers used in "interface" functions must be far
pointers to bridge the data spaces of the .EXE and the DLL. The source pointers to bridge the data spaces of the .EXE and the DLL. The source
code is (mostly) ANSI C, however, and "far pointers" are an extension to code is (mostly) ANSI C, however, and "far pointers" are an extension to
ANSI C. The easiest way out is to make all pointers "far" by using large ANSI C. The easiest way out is to make all pointers "far" by using large
memory model. memory model.
o AMX_NATIVE_CALL are best set to "__far __pascal". This is the "standard" o AMX_NATIVE_CALL are best set to "__far __pascal". This is the "standard"
calling convention for have interface functions in 16-bit Windows. calling convention for have interface functions in 16-bit Windows.
o The native functions should also be exported, so that the data segment is o The native functions should also be exported, so that the data segment is
set to that of the module that the native functions reside in. set to that of the module that the native functions reside in.
o AMXAPI, however, must be set to "__cdecl", because amx_Exec() uses a o AMXAPI, however, must be set to "__cdecl", because amx_Exec() uses a
variable length argument list. This is incompatible with the "pascal" variable length argument list. This is incompatible with the "pascal"
calling convention. calling convention.
The distribution for the AMX DLL comes with two makefiles: the makefile for the The distribution for the AMX DLL comes with two makefiles: the makefile for the
32-bit DLL is for Watcom C/C++ and the makefile for the 16-bit DLL is for 32-bit DLL is for Watcom C/C++ and the makefile for the 16-bit DLL is for
Borland C++ (Inprise). Borland C++ (Inprise).

View File

@ -1,74 +1,74 @@
#build file for CMake, see http://www.cmake.org/ #build file for CMake, see http://www.cmake.org/
PROJECT(pawnc) PROJECT(pawnc)
CMAKE_MINIMUM_REQUIRED(VERSION 2.6) CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
# check for optional include files # check for optional include files
INCLUDE(${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake) INCLUDE(${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake)
CHECK_INCLUDE_FILE("unistd.h" HAVE_UNISTD_H) CHECK_INCLUDE_FILE("unistd.h" HAVE_UNISTD_H)
IF(HAVE_UNISTD_H) IF(HAVE_UNISTD_H)
ADD_DEFINITIONS(-DHAVE_UNISTD_H) ADD_DEFINITIONS(-DHAVE_UNISTD_H)
ENDIF(HAVE_UNISTD_H) ENDIF(HAVE_UNISTD_H)
CHECK_INCLUDE_FILE("inttypes.h" HAVE_INTTYPES_H) CHECK_INCLUDE_FILE("inttypes.h" HAVE_INTTYPES_H)
IF(HAVE_INTTYPES_H) IF(HAVE_INTTYPES_H)
ADD_DEFINITIONS(-DHAVE_INTTYPES_H) ADD_DEFINITIONS(-DHAVE_INTTYPES_H)
ENDIF(HAVE_INTTYPES_H) ENDIF(HAVE_INTTYPES_H)
CHECK_INCLUDE_FILE("stdint.h" HAVE_STDINT_H) CHECK_INCLUDE_FILE("stdint.h" HAVE_STDINT_H)
IF(HAVE_STDINT_H) IF(HAVE_STDINT_H)
ADD_DEFINITIONS(-DHAVE_STDINT_H) ADD_DEFINITIONS(-DHAVE_STDINT_H)
ENDIF(HAVE_STDINT_H) ENDIF(HAVE_STDINT_H)
CHECK_INCLUDE_FILE("alloca.h" HAVE_ALLOCA_H) CHECK_INCLUDE_FILE("alloca.h" HAVE_ALLOCA_H)
IF(HAVE_ALLOCA_H) IF(HAVE_ALLOCA_H)
ADD_DEFINITIONS(-DHAVE_ALLOCA_H) ADD_DEFINITIONS(-DHAVE_ALLOCA_H)
ENDIF(HAVE_ALLOCA_H) ENDIF(HAVE_ALLOCA_H)
IF(UNIX) IF(UNIX)
ADD_DEFINITIONS(-DLINUX -DENABLE_BINRELOC -g) ADD_DEFINITIONS(-DLINUX -DENABLE_BINRELOC -g)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../linux) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../linux)
LINK_LIBRARIES(pthread) #CMake adds the "lib" prefix, so "pthread" becomes "libpthread" LINK_LIBRARIES(pthread) #CMake adds the "lib" prefix, so "pthread" becomes "libpthread"
ENDIF(UNIX) ENDIF(UNIX)
# The Pawn compiler shared library # The Pawn compiler shared library
SET(PAWNC_SRCS sc1.c sc2.c sc3.c sc4.c sc5.c sc6.c sc7.c SET(PAWNC_SRCS sc1.c sc2.c sc3.c sc4.c sc5.c sc6.c sc7.c
scexpand.c sci18n.c sclist.c scmemfil.c scstate.c scvars.c scexpand.c sci18n.c sclist.c scmemfil.c scstate.c scvars.c
lstring.c memfile.c libpawnc.c) lstring.c memfile.c libpawnc.c)
SET_SOURCE_FILES_PROPERTIES(sc1.c COMPILE_FLAGS -DNO_MAIN) SET_SOURCE_FILES_PROPERTIES(sc1.c COMPILE_FLAGS -DNO_MAIN)
IF(WIN32) IF(WIN32)
SET(PAWNC_SRCS ${PAWNC_SRCS} libpawnc.rc) SET(PAWNC_SRCS ${PAWNC_SRCS} libpawnc.rc)
SET_SOURCE_FILES_PROPERTIES(libpawnc.c COMPILE_FLAGS -DPAWNC_DLL) SET_SOURCE_FILES_PROPERTIES(libpawnc.c COMPILE_FLAGS -DPAWNC_DLL)
IF(BORLAND) IF(BORLAND)
# Borland linker uses a DEF file if one is in the output directory # Borland linker uses a DEF file if one is in the output directory
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libpawnc.def.borland ${CMAKE_BINARY_DIR}/pawnc.def COPY_ONLY) CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libpawnc.def.borland ${CMAKE_BINARY_DIR}/pawnc.def COPY_ONLY)
ELSE(BORLAND) ELSE(BORLAND)
# Microsoft Visual C/C++ supports a DEF file as if it were a source file # Microsoft Visual C/C++ supports a DEF file as if it were a source file
SET(PAWNC_SRCS ${PAWNC_SRCS} libpawnc.def) SET(PAWNC_SRCS ${PAWNC_SRCS} libpawnc.def)
ENDIF(BORLAND) ENDIF(BORLAND)
ENDIF(WIN32) ENDIF(WIN32)
IF(UNIX) IF(UNIX)
SET(PAWNC_SRCS ${PAWNC_SRCS} ${CMAKE_CURRENT_SOURCE_DIR}/../linux/binreloc.c) SET(PAWNC_SRCS ${PAWNC_SRCS} ${CMAKE_CURRENT_SOURCE_DIR}/../linux/binreloc.c)
ENDIF(UNIX) ENDIF(UNIX)
ADD_LIBRARY(pawnc SHARED ${PAWNC_SRCS}) ADD_LIBRARY(pawnc SHARED ${PAWNC_SRCS})
IF(WATCOM) #Watcom C/C++ does not support a .DEF file for the exports IF(WATCOM) #Watcom C/C++ does not support a .DEF file for the exports
SET_TARGET_PROPERTIES(pawnc PROPERTIES LINK_FLAGS "/exp=libpawnc") SET_TARGET_PROPERTIES(pawnc PROPERTIES LINK_FLAGS "/exp=libpawnc")
ENDIF(WATCOM) ENDIF(WATCOM)
IF(UNIX AND NOT CMAKE_BUILD_TYPE STREQUAL "Debug") IF(UNIX AND NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
# Unix exports all symbols by default; we want only a very select few exported symbols # Unix exports all symbols by default; we want only a very select few exported symbols
ADD_CUSTOM_COMMAND(TARGET pawnc POST_BUILD COMMAND strip ARGS -K pc_compile -K pc_addconstant -K pc_addtag -K pc_enablewarning ${CMAKE_BINARY_DIR}/libpawnc.so) ADD_CUSTOM_COMMAND(TARGET pawnc POST_BUILD COMMAND strip ARGS -K pc_compile -K pc_addconstant -K pc_addtag -K pc_enablewarning ${CMAKE_BINARY_DIR}/libpawnc.so)
ENDIF(UNIX AND NOT CMAKE_BUILD_TYPE STREQUAL "Debug") ENDIF(UNIX AND NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
# The Pawn compiler driver (console program) # The Pawn compiler driver (console program)
SET(PAWNCC_SRCS pawncc.c) SET(PAWNCC_SRCS pawncc.c)
IF(WIN32) IF(WIN32)
SET(PAWNCC_SRCS ${PAWNCC_SRCS} libpawnc.rc) SET(PAWNCC_SRCS ${PAWNCC_SRCS} libpawnc.rc)
IF(BORLAND) IF(BORLAND)
# Borland linker uses a DEF file if one is in the output directory # Borland linker uses a DEF file if one is in the output directory
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/pawncc.def.borland ${CMAKE_BINARY_DIR}/pawncc.def COPY_ONLY) CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/pawncc.def.borland ${CMAKE_BINARY_DIR}/pawncc.def COPY_ONLY)
ELSE(BORLAND) ELSE(BORLAND)
# Microsoft Visual C/C++ supports a DEF file as if it were a source file # Microsoft Visual C/C++ supports a DEF file as if it were a source file
SET(PAWNC_SRCS ${PAWNC_SRCS} pawncc.def) SET(PAWNC_SRCS ${PAWNC_SRCS} pawncc.def)
ENDIF(BORLAND) ENDIF(BORLAND)
ENDIF(WIN32) ENDIF(WIN32)
ADD_EXECUTABLE(pawncc ${PAWNCC_SRCS}) ADD_EXECUTABLE(pawncc ${PAWNCC_SRCS})
TARGET_LINK_LIBRARIES(pawncc pawnc) TARGET_LINK_LIBRARIES(pawncc pawnc)

View File

@ -1,8 +1,8 @@
LIBRARY PAWNC LIBRARY PAWNC
DESCRIPTION 'Pawn compiler' DESCRIPTION 'Pawn compiler'
EXPORTS Compile EXPORTS Compile
pc_compile pc_compile
pc_addconstant pc_addconstant
pc_addtag pc_addtag
pc_enablewarning pc_enablewarning

View File

@ -1,8 +1,8 @@
LIBRARY PAWNC LIBRARY PAWNC
DESCRIPTION 'Pawn compiler' DESCRIPTION 'Pawn compiler'
EXPORTS Compile EXPORTS Compile
pc_compile = _pc_compile pc_compile = _pc_compile
pc_addconstant = _pc_addconstant pc_addconstant = _pc_addconstant
pc_addtag = _pc_addtag pc_addtag = _pc_addtag
pc_enablewarning = _pc_enablewarning pc_enablewarning = _pc_enablewarning

View File

@ -1,6 +1,6 @@
++_Compile@16 .libpawnc .Compile ++_Compile@16 .libpawnc .Compile
++pc_compile .libpawnc .pc_compile ++pc_compile .libpawnc .pc_compile
++pc_addconstant .libpawnc .pc_addconstant ++pc_addconstant .libpawnc .pc_addconstant
++pc_addtag .libpawnc .pc_addtag ++pc_addtag .libpawnc .pc_addtag
++pc_enablewarning .libpawnc .pc_enablewarning ++pc_enablewarning .libpawnc .pc_enablewarning
++pc_printf .libpawnc .pc_printf ++pc_printf .libpawnc .pc_printf

View File

@ -1,63 +1,63 @@
#include <windows.h> #include <windows.h>
#if defined WIN32 || defined _WIN32 || defined __WIN32__ #if defined WIN32 || defined _WIN32 || defined __WIN32__
# include <winver.h> # include <winver.h>
#else #else
# include <ver.h> # include <ver.h>
#endif #endif
#include "svnrev.h" #include "svnrev.h"
AppIcon ICON "../bin/pawn.ico" AppIcon ICON "../bin/pawn.ico"
/* Version information /* Version information
* *
* All strings MUST have an explicit \0. See the Windows SDK documentation * All strings MUST have an explicit \0. See the Windows SDK documentation
* for details on version information and the VERSIONINFO structure. * for details on version information and the VERSIONINFO structure.
*/ */
#define VERSION 3 #define VERSION 3
#define REVISION 2 #define REVISION 2
#define BUILD SVN_REV #define BUILD SVN_REV
#define VERSIONSTR "3.2." SVN_REVSTR "\0" #define VERSIONSTR "3.2." SVN_REVSTR "\0"
#if defined STAND_ALONE #if defined STAND_ALONE
#define VERSIONNAME "pawncc.exe\0" #define VERSIONNAME "pawncc.exe\0"
#define VERSIONDESCRIPTION "Pawn Compiler\0" #define VERSIONDESCRIPTION "Pawn Compiler\0"
#define VERSIONPRODUCTNAME "pawncc\0" #define VERSIONPRODUCTNAME "pawncc\0"
#else #else
#define VERSIONNAME "libpawnc.dll\0" #define VERSIONNAME "libpawnc.dll\0"
#define VERSIONDESCRIPTION "Pawn Compiler library\0" #define VERSIONDESCRIPTION "Pawn Compiler library\0"
#define VERSIONPRODUCTNAME "libpawnc\0" #define VERSIONPRODUCTNAME "libpawnc\0"
#endif #endif
#define VERSIONCOMPANYNAME "ITB CompuPhase\0" #define VERSIONCOMPANYNAME "ITB CompuPhase\0"
#define VERSIONCOPYRIGHT "Copyright \251 1998-2006 ITB CompuPhase\0" #define VERSIONCOPYRIGHT "Copyright \251 1998-2006 ITB CompuPhase\0"
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION VERSION, REVISION, BUILD, 0 FILEVERSION VERSION, REVISION, BUILD, 0
PRODUCTVERSION VERSION, REVISION, BUILD, 0 PRODUCTVERSION VERSION, REVISION, BUILD, 0
FILEFLAGSMASK 0x0000003FL FILEFLAGSMASK 0x0000003FL
FILEFLAGS 0 FILEFLAGS 0
#if defined(WIN32) #if defined(WIN32)
FILEOS VOS__WINDOWS32 FILEOS VOS__WINDOWS32
#else #else
FILEOS VOS__WINDOWS16 FILEOS VOS__WINDOWS16
#endif #endif
FILETYPE VFT_DLL FILETYPE VFT_DLL
BEGIN BEGIN
BLOCK "StringFileInfo" BLOCK "StringFileInfo"
BEGIN BEGIN
BLOCK "040904E4" BLOCK "040904E4"
BEGIN BEGIN
VALUE "CompanyName", VERSIONCOMPANYNAME VALUE "CompanyName", VERSIONCOMPANYNAME
VALUE "FileDescription", VERSIONDESCRIPTION VALUE "FileDescription", VERSIONDESCRIPTION
VALUE "FileVersion", VERSIONSTR VALUE "FileVersion", VERSIONSTR
VALUE "InternalName", VERSIONNAME VALUE "InternalName", VERSIONNAME
VALUE "LegalCopyright", VERSIONCOPYRIGHT VALUE "LegalCopyright", VERSIONCOPYRIGHT
VALUE "OriginalFilename", VERSIONNAME VALUE "OriginalFilename", VERSIONNAME
VALUE "ProductName", VERSIONPRODUCTNAME VALUE "ProductName", VERSIONPRODUCTNAME
VALUE "ProductVersion", VERSIONSTR VALUE "ProductVersion", VERSIONSTR
END END
END END
BLOCK "VarFileInfo" BLOCK "VarFileInfo"
BEGIN BEGIN
VALUE "Translation", 0x409, 1252 VALUE "Translation", 0x409, 1252
END END
END END

View File

@ -1,2 +1,2 @@
NAME PAWNCC NAME PAWNCC
DESCRIPTION 'Pawn compiler' DESCRIPTION 'Pawn compiler'

View File

@ -1,5 +1,5 @@
NAME PAWNCC NAME PAWNCC
DESCRIPTION 'Pawn compiler' DESCRIPTION 'Pawn compiler'
IMPORTS IMPORTS
_pc_compile = pawnc.pc_compile _pc_compile = pawnc.pc_compile

View File

@ -1,342 +1,342 @@
/* Pawn compiler - Error message strings (plain and compressed formats) /* Pawn compiler - Error message strings (plain and compressed formats)
* *
* Copyright (c) ITB CompuPhase, 2000-2006 * Copyright (c) ITB CompuPhase, 2000-2006
* *
* This software is provided "as-is", without any express or implied warranty. * This software is provided "as-is", without any express or implied warranty.
* In no event will the authors be held liable for any damages arising from * In no event will the authors be held liable for any damages arising from
* the use of this software. * the use of this software.
* *
* Permission is granted to anyone to use this software for any purpose, * Permission is granted to anyone to use this software for any purpose,
* including commercial applications, and to alter it and redistribute it * including commercial applications, and to alter it and redistribute it
* freely, subject to the following restrictions: * freely, subject to the following restrictions:
* *
* 1. The origin of this software must not be misrepresented; you must not * 1. The origin of this software must not be misrepresented; you must not
* claim that you wrote the original software. If you use this software in * claim that you wrote the original software. If you use this software in
* a product, an acknowledgment in the product documentation would be * a product, an acknowledgment in the product documentation would be
* appreciated but is not required. * appreciated but is not required.
* 2. Altered source versions must be plainly marked as such, and must not be * 2. Altered source versions must be plainly marked as such, and must not be
* misrepresented as being the original software. * misrepresented as being the original software.
* 3. This notice may not be removed or altered from any source distribution. * 3. This notice may not be removed or altered from any source distribution.
* *
* Version: $Id: sc5.sch 3633 2006-08-11 16:20:18Z thiadmer $ * Version: $Id: sc5.sch 3633 2006-08-11 16:20:18Z thiadmer $
*/ */
SC_FUNC int strexpand(char *dest, unsigned char *source, int maxlen, unsigned char pairtable[128][2]); SC_FUNC int strexpand(char *dest, unsigned char *source, int maxlen, unsigned char pairtable[128][2]);
#define SCPACK_TABLE errstr_table #define SCPACK_TABLE errstr_table
/*-*SCPACK start of pair table, do not change or remove this line */ /*-*SCPACK start of pair table, do not change or remove this line */
unsigned char errstr_table[][2] = { unsigned char errstr_table[][2] = {
{101,32}, {111,110}, {116,32}, {105,110}, {97,114}, {116,105}, {100,32}, {115,32}, {101,114}, {97,108}, {101,110}, {37,115}, {133,129}, {34,139}, {141,34}, {117,110}, {101,32}, {111,110}, {116,32}, {105,110}, {97,114}, {116,105}, {100,32}, {115,32}, {101,114}, {97,108}, {101,110}, {37,115}, {133,129}, {34,139}, {141,34}, {117,110},
{114,101}, {110,111}, {115,105}, {121,32}, {97,116}, {111,114}, {97,110}, {32,142}, {109,98}, {115,116}, {41,10}, {100,101}, {109,138}, {101,134}, {98,108}, {140,32}, {114,101}, {110,111}, {115,105}, {121,32}, {97,116}, {111,114}, {97,110}, {32,142}, {109,98}, {115,116}, {41,10}, {100,101}, {109,138}, {101,134}, {98,108}, {140,32},
{111,108}, {114,97}, {145,130}, {118,137}, {143,99}, {102,164}, {115,121}, {166,152}, {167,160}, {117,115}, {97,32}, {115,146}, {97,158}, {149,32}, {132,161}, {105,134}, {111,108}, {114,97}, {145,130}, {118,137}, {143,99}, {102,164}, {115,121}, {166,152}, {167,160}, {117,115}, {97,32}, {115,146}, {97,158}, {149,32}, {132,161}, {105,134},
{103,32}, {163,175}, {103,117}, {178,156}, {136,32}, {132,179}, {131,177}, {111,102}, {116,104}, {101,120}, {105,135}, {165,159}, {101,100}, {99,104}, {118,132}, {168,151}, {103,32}, {163,175}, {103,117}, {178,156}, {136,32}, {132,179}, {131,177}, {111,102}, {116,104}, {101,120}, {105,135}, {165,159}, {101,100}, {99,104}, {118,132}, {168,151},
{105,172}, {190,192}, {155,102}, {174,147}, {183,32}, {109,97}, {116,111}, {99,129}, {101,135}, {112,144}, {181,130}, {98,128}, {115,10}, {153,148}, {44,32}, {40,191}, {105,172}, {190,192}, {155,102}, {174,147}, {183,32}, {109,97}, {116,111}, {99,129}, {101,135}, {112,144}, {181,130}, {98,128}, {115,10}, {153,148}, {44,32}, {40,191},
{169,130}, {151,10}, {101,10}, {207,154}, {109,208}, {116,97}, {194,131}, {193,128}, {34,32}, {129,32}, {105,99}, {132,97}, {100,105}, {146,122}, {110,32}, {137,32}, {169,130}, {151,10}, {101,10}, {207,154}, {109,208}, {116,97}, {194,131}, {193,128}, {34,32}, {129,32}, {105,99}, {132,97}, {100,105}, {146,122}, {110,32}, {137,32},
{104,97}, {101,108}, {117,108}, {99,111}, {108,111}, {109,148}, {199,153}, {58,209}, {111,112}, {97,115}, {108,128}, {232,136}, {230,150}, {150,32}, {201,171}, {131,176}, {104,97}, {101,108}, {117,108}, {99,111}, {108,111}, {109,148}, {199,153}, {58,209}, {111,112}, {97,115}, {108,128}, {232,136}, {230,150}, {150,32}, {201,171}, {131,176},
{212,203}, {102,105}, {119,105}, {185,238}, {109,112}, {116,136}, {165,140}, {197,147}, {102,149}, {111,32}, {131,32}, {213,176}, {110,117}, {115,117}, {118,128} {212,203}, {102,105}, {119,105}, {185,238}, {109,112}, {116,136}, {165,140}, {197,147}, {102,149}, {111,32}, {131,32}, {213,176}, {110,117}, {115,117}, {118,128}
}; };
/*-*SCPACK end of pair table, do not change or remove this line */ /*-*SCPACK end of pair table, do not change or remove this line */
static char *errmsg[] = { static char *errmsg[] = {
#ifdef SCPACK #ifdef SCPACK
/*001*/ "expected token: \"%s\", but found \"%s\"\n", /*001*/ "expected token: \"%s\", but found \"%s\"\n",
/*002*/ "only a single statement (or expression) can follow each \"case\"\n", /*002*/ "only a single statement (or expression) can follow each \"case\"\n",
/*003*/ "declaration of a local variable must appear in a compound block\n", /*003*/ "declaration of a local variable must appear in a compound block\n",
/*004*/ "function \"%s\" is not implemented\n", /*004*/ "function \"%s\" is not implemented\n",
/*005*/ "function may not have arguments\n", /*005*/ "function may not have arguments\n",
/*006*/ "must be assigned to an array\n", /*006*/ "must be assigned to an array\n",
/*007*/ "operator cannot be redefined\n", /*007*/ "operator cannot be redefined\n",
/*008*/ "must be a constant expression; assumed zero\n", /*008*/ "must be a constant expression; assumed zero\n",
/*009*/ "invalid array size (negative, zero or out of bounds)\n", /*009*/ "invalid array size (negative, zero or out of bounds)\n",
/*010*/ "invalid function or declaration\n", /*010*/ "invalid function or declaration\n",
/*011*/ "invalid outside functions\n", /*011*/ "invalid outside functions\n",
/*012*/ "invalid function call, not a valid address\n", /*012*/ "invalid function call, not a valid address\n",
/*013*/ "no entry point (no public functions)\n", /*013*/ "no entry point (no public functions)\n",
/*014*/ "invalid statement; not in switch\n", /*014*/ "invalid statement; not in switch\n",
/*015*/ "\"default\" case must be the last case in switch statement\n", /*015*/ "\"default\" case must be the last case in switch statement\n",
/*016*/ "multiple defaults in \"switch\"\n", /*016*/ "multiple defaults in \"switch\"\n",
/*017*/ "undefined symbol \"%s\"\n", /*017*/ "undefined symbol \"%s\"\n",
/*018*/ "initialization data exceeds declared size\n", /*018*/ "initialization data exceeds declared size\n",
/*019*/ "not a label: \"%s\"\n", /*019*/ "not a label: \"%s\"\n",
/*020*/ "invalid symbol name \"%s\"\n", /*020*/ "invalid symbol name \"%s\"\n",
/*021*/ "symbol already defined: \"%s\"\n", /*021*/ "symbol already defined: \"%s\"\n",
/*022*/ "must be lvalue (non-constant)\n", /*022*/ "must be lvalue (non-constant)\n",
/*023*/ "array assignment must be simple assignment\n", /*023*/ "array assignment must be simple assignment\n",
/*024*/ "\"break\" or \"continue\" is out of context\n", /*024*/ "\"break\" or \"continue\" is out of context\n",
/*025*/ "function heading differs from prototype\n", /*025*/ "function heading differs from prototype\n",
/*026*/ "no matching \"#if...\"\n", /*026*/ "no matching \"#if...\"\n",
/*027*/ "invalid character constant\n", /*027*/ "invalid character constant\n",
/*028*/ "invalid subscript (not an array or too many subscripts): \"%s\"\n", /*028*/ "invalid subscript (not an array or too many subscripts): \"%s\"\n",
/*029*/ "invalid expression, assumed zero\n", /*029*/ "invalid expression, assumed zero\n",
/*030*/ "compound statement not closed at the end of file (started at line %d)\n", /*030*/ "compound statement not closed at the end of file (started at line %d)\n",
/*031*/ "unknown directive\n", /*031*/ "unknown directive\n",
/*032*/ "array index out of bounds (variable \"%s\")\n", /*032*/ "array index out of bounds (variable \"%s\")\n",
/*033*/ "array must be indexed (variable \"%s\")\n", /*033*/ "array must be indexed (variable \"%s\")\n",
/*034*/ "argument does not have a default value (argument %d)\n", /*034*/ "argument does not have a default value (argument %d)\n",
/*035*/ "argument type mismatch (argument %d)\n", /*035*/ "argument type mismatch (argument %d)\n",
/*036*/ "empty statement\n", /*036*/ "empty statement\n",
/*037*/ "invalid string (possibly non-terminated string)\n", /*037*/ "invalid string (possibly non-terminated string)\n",
/*038*/ "extra characters on line\n", /*038*/ "extra characters on line\n",
/*039*/ "constant symbol has no size\n", /*039*/ "constant symbol has no size\n",
/*040*/ "duplicate \"case\" label (value %d)\n", /*040*/ "duplicate \"case\" label (value %d)\n",
/*041*/ "invalid ellipsis, array size is not known\n", /*041*/ "invalid ellipsis, array size is not known\n",
/*042*/ "invalid combination of class specifiers\n", /*042*/ "invalid combination of class specifiers\n",
/*043*/ "character constant exceeds range for packed string\n", /*043*/ "character constant exceeds range for packed string\n",
/*044*/ "positional parameters must precede all named parameters\n", /*044*/ "positional parameters must precede all named parameters\n",
/*045*/ "too many function arguments\n", /*045*/ "too many function arguments\n",
/*046*/ "unknown array size (variable \"%s\")\n", /*046*/ "unknown array size (variable \"%s\")\n",
/*047*/ "array sizes do not match, or destination array is too small\n", /*047*/ "array sizes do not match, or destination array is too small\n",
/*048*/ "array dimensions do not match\n", /*048*/ "array dimensions do not match\n",
/*049*/ "invalid line continuation\n", /*049*/ "invalid line continuation\n",
/*050*/ "invalid range\n", /*050*/ "invalid range\n",
/*051*/ "invalid subscript, use \"[ ]\" operators on major dimensions\n", /*051*/ "invalid subscript, use \"[ ]\" operators on major dimensions\n",
/*052*/ "multi-dimensional arrays must be fully initialized\n", /*052*/ "multi-dimensional arrays must be fully initialized\n",
/*053*/ "exceeding maximum number of dimensions\n", /*053*/ "exceeding maximum number of dimensions\n",
/*054*/ "unmatched closing brace (\"}\")\n", /*054*/ "unmatched closing brace (\"}\")\n",
/*055*/ "start of function body without function header\n", /*055*/ "start of function body without function header\n",
/*056*/ "arrays, local variables and function arguments cannot be public (variable \"%s\")\n", /*056*/ "arrays, local variables and function arguments cannot be public (variable \"%s\")\n",
/*057*/ "unfinished expression before compiler directive\n", /*057*/ "unfinished expression before compiler directive\n",
/*058*/ "duplicate argument; same argument is passed twice\n", /*058*/ "duplicate argument; same argument is passed twice\n",
/*059*/ "function argument may not have a default value (variable \"%s\")\n", /*059*/ "function argument may not have a default value (variable \"%s\")\n",
/*060*/ "multiple \"#else\" directives between \"#if ... #endif\"\n", /*060*/ "multiple \"#else\" directives between \"#if ... #endif\"\n",
/*061*/ "\"#elseif\" directive follows an \"#else\" directive\n", /*061*/ "\"#elseif\" directive follows an \"#else\" directive\n",
/*062*/ "number of operands does not fit the operator\n", /*062*/ "number of operands does not fit the operator\n",
/*063*/ "function result tag of operator \"%s\" must be \"%s\"\n", /*063*/ "function result tag of operator \"%s\" must be \"%s\"\n",
/*064*/ "cannot change predefined operators\n", /*064*/ "cannot change predefined operators\n",
/*065*/ "function argument may only have a single tag (argument %d)\n", /*065*/ "function argument may only have a single tag (argument %d)\n",
/*066*/ "function argument may not be a reference argument or an array (argument \"%s\")\n", /*066*/ "function argument may not be a reference argument or an array (argument \"%s\")\n",
/*067*/ "variable cannot be both a reference and an array (variable \"%s\")\n", /*067*/ "variable cannot be both a reference and an array (variable \"%s\")\n",
/*068*/ "invalid rational number precision in #pragma\n", /*068*/ "invalid rational number precision in #pragma\n",
/*069*/ "rational number format already defined\n", /*069*/ "rational number format already defined\n",
/*070*/ "rational number support was not enabled\n", /*070*/ "rational number support was not enabled\n",
/*071*/ "user-defined operator must be declared before use (function \"%s\")\n", /*071*/ "user-defined operator must be declared before use (function \"%s\")\n",
/*072*/ "\"sizeof\" operator is invalid on \"function\" symbols\n", /*072*/ "\"sizeof\" operator is invalid on \"function\" symbols\n",
/*073*/ "function argument must be an array (argument \"%s\")\n", /*073*/ "function argument must be an array (argument \"%s\")\n",
/*074*/ "#define pattern must start with an alphabetic character\n", /*074*/ "#define pattern must start with an alphabetic character\n",
/*075*/ "input line too long (after substitutions)\n", /*075*/ "input line too long (after substitutions)\n",
/*076*/ "syntax error in the expression, or invalid function call\n", /*076*/ "syntax error in the expression, or invalid function call\n",
/*077*/ "malformed UTF-8 encoding, or corrupted file: %s\n", /*077*/ "malformed UTF-8 encoding, or corrupted file: %s\n",
/*078*/ "function uses both \"return\" and \"return <value>\"\n", /*078*/ "function uses both \"return\" and \"return <value>\"\n",
/*079*/ "inconsistent return types (array & non-array)\n", /*079*/ "inconsistent return types (array & non-array)\n",
/*080*/ "unknown symbol, or not a constant symbol (symbol \"%s\")\n", /*080*/ "unknown symbol, or not a constant symbol (symbol \"%s\")\n",
/*081*/ "cannot take a tag as a default value for an indexed array parameter (symbol \"%s\")\n", /*081*/ "cannot take a tag as a default value for an indexed array parameter (symbol \"%s\")\n",
/*082*/ "user-defined operators and native functions may not have states\n", /*082*/ "user-defined operators and native functions may not have states\n",
/*083*/ "a function or variable may only belong to a single automaton (symbol \"%s\")\n", /*083*/ "a function or variable may only belong to a single automaton (symbol \"%s\")\n",
/*084*/ "state conflict: one of the states is already assigned to another implementation (symbol \"%s\")\n", /*084*/ "state conflict: one of the states is already assigned to another implementation (symbol \"%s\")\n",
/*085*/ "no states are defined for symbol \"%s\"\n", /*085*/ "no states are defined for symbol \"%s\"\n",
/*086*/ "unknown automaton \"%s\"\n", /*086*/ "unknown automaton \"%s\"\n",
/*087*/ "unknown state \"%s\" for automaton \"%s\"\n", /*087*/ "unknown state \"%s\" for automaton \"%s\"\n",
/*088*/ "public variables and local variables may not have states (symbol \"%s\")\n", /*088*/ "public variables and local variables may not have states (symbol \"%s\")\n",
/*089*/ "state variables may not be initialized (symbol \"%s\")\n", /*089*/ "state variables may not be initialized (symbol \"%s\")\n",
/*090*/ "public functions may not return arrays (symbol \"%s\")\n", /*090*/ "public functions may not return arrays (symbol \"%s\")\n",
/*091*/ "ambiguous constant; tag override is required (symbol \"%s\")\n" /*091*/ "ambiguous constant; tag override is required (symbol \"%s\")\n"
#else #else
"\271pect\235\306k\212:\227\316bu\202fo\217\206\216\012", "\271pect\235\306k\212:\227\316bu\202fo\217\206\216\012",
"\201l\223\252s\203g\352\315e\234\202(\255\363\201) c\355f\240\344w ea\275 \042c\351e\042\012", "\201l\223\252s\203g\352\315e\234\202(\255\363\201) c\355f\240\344w ea\275 \042c\351e\042\012",
"\233cl\333\237\304\252\344c\337\327\324appe\204 \372\252\343\364o\217\206\236ock\012", "\233cl\333\237\304\252\344c\337\327\324appe\204 \372\252\343\364o\217\206\236ock\012",
"\366\227 \272\242i\364le\234t\274\012", "\366\227 \272\242i\364le\234t\274\012",
"\273\367\242\340\376\265t\314", "\273\367\242\340\376\265t\314",
"\360a\253gn\235\306 \355\256y\012", "\360a\253gn\235\306 \355\256y\012",
"\353\224\255c\226\242\313\220\326\274\012", "\353\224\255c\226\242\313\220\326\274\012",
"\360\252\354\202\363\201; \351\375m\235z\210o\012", "\360\252\354\202\363\201; \351\375m\235z\210o\012",
"\266\303\335\200(nega\205ve\316z\210\371\255ou\202\304bo\217ds\232", "\266\303\335\200(nega\205ve\316z\210\371\255ou\202\304bo\217ds\232",
"\266\273\255\233cl\333\214\012", "\266\273\255\233cl\333\214\012",
"\266out\222d\200\366\314", "\266out\222d\200\366\314",
"\266\273c\211l\316\242\252\261add\220s\314", "\266\273c\211l\316\242\252\261add\220s\314",
"\221 \212tr\223po\203\202(\221 pu\236\332 \366s\232", "\221 \212tr\223po\203\202(\221 pu\236\332 \366s\232",
"\266\315e\234t; \242\372s\362t\275\012", "\266\315e\234t; \242\372s\362t\275\012",
"\042\302a\342t\330c\351\200\360\270\200l\351\202c\351\200\372s\362t\275 \315e\234t\012", "\042\302a\342t\330c\351\200\360\270\200l\351\202c\351\200\372s\362t\275 \315e\234t\012",
"m\342\205p\352\302a\342t\207\372\042s\362t\275\042\012", "m\342\205p\352\302a\342t\207\372\042s\362t\275\042\012",
"\217\326\235\277\012", "\217\326\235\277\012",
"\203i\205\211iza\237d\224\252\271ce\274\207\233cl\204\235\335\322", "\203i\205\211iza\237d\224\252\271ce\274\207\233cl\204\235\335\322",
"\242\252lab\341\347", "\242\252lab\341\347",
"\266\250 nam\200\216\012", "\266\250 nam\200\216\012",
"\250 \211\220ad\223\326\274\347", "\250 \211\220ad\223\326\274\347",
"\360l\243u\200(n\201-\354t\232", "\360l\243u\200(n\201-\354t\232",
"\303a\253gn\234\202\360\222\364\352a\253gn\234t\012", "\303a\253gn\234\202\360\222\364\352a\253gn\234t\012",
"\042b\220ak\330\255\042\307t\203ue\330\272ou\202\304\307t\271t\012", "\042b\220ak\330\255\042\307t\203ue\330\272ou\202\304\307t\271t\012",
"\273head\357\334ff\210\207from pro\306typ\322", "\273head\357\334ff\210\207from pro\306typ\322",
"\221 \345\275\357\042#if...\042\012", "\221 \345\275\357\042#if...\042\012",
"\266\275\333ct\264\354t\012", "\266\275\333ct\264\354t\012",
"\266\375bscrip\202(\242\355\303\255\306\371m\226\223\375bscripts)\347", "\266\375bscrip\202(\242\355\303\255\306\371m\226\223\375bscripts)\347",
"\266\363\201\316\351\375m\235z\210o\012", "\266\363\201\316\351\375m\235z\210o\012",
"\343\364o\217\206\315e\234\202\242c\344s\235a\202\270\200\212\206\304\361\352(\231\204t\235a\202l\203\200%d\232", "\343\364o\217\206\315e\234\202\242c\344s\235a\202\270\200\212\206\304\361\352(\231\204t\235a\202l\203\200%d\232",
"\217k\221w\336\334\220c\205v\322", "\217k\221w\336\334\220c\205v\322",
"\303\203\233x ou\202\304bo\217d\207(\327\216\232", "\303\203\233x ou\202\304bo\217d\207(\327\216\232",
"\303\360\203\233x\235(\327\216\232", "\303\360\203\233x\235(\327\216\232",
"\312do\310\242\340\376\252\302a\342\202\243u\200(\312%d\232", "\312do\310\242\340\376\252\302a\342\202\243u\200(\312%d\232",
"\312typ\200mis\345\275 (\312%d\232", "\312typ\200mis\345\275 (\312%d\232",
"e\364t\223\315e\234t\012", "e\364t\223\315e\234t\012",
"\266\231r\357(po\253\236\223n\201-\365m\203\224\235\231r\203g\232", "\266\231r\357(po\253\236\223n\201-\365m\203\224\235\231r\203g\232",
"\271t\241 \275\333c\365\207\331l\203\322", "\271t\241 \275\333c\365\207\331l\203\322",
"\354\202\250 \340\207\221 \335\322", "\354\202\250 \340\207\221 \335\322",
"dupl\332\224\200\042c\351e\330lab\341 (\243u\200%d\232", "dupl\332\224\200\042c\351e\330lab\341 (\243u\200%d\232",
"\266\341lip\222s\316\303\335\200\272\242k\221wn\012", "\266\341lip\222s\316\303\335\200\272\242k\221wn\012",
"\266\343\230\203a\237\304cl\351\207speci\361\210\314", "\266\343\230\203a\237\304cl\351\207speci\361\210\314",
"\275\333ct\264\354\202\271ce\274\207r\226g\200f\255pack\235\231r\203g\012", "\275\333ct\264\354\202\271ce\274\207r\226g\200f\255pack\235\231r\203g\012",
"po\222\214\337p\333me\365\207\324\311c\274\200\211l nam\235p\333me\365\314", "po\222\214\337p\333me\365\207\324\311c\274\200\211l nam\235p\333me\365\314",
"\306\371m\226\223\273\265t\314", "\306\371m\226\223\273\265t\314",
"\217k\221w\336\303\335\200(\327\216\232", "\217k\221w\336\303\335\200(\327\216\232",
"\303\335\310d\371\242\345\275\316\255\233\231\203a\237\303\272\306\371sm\211l\012", "\303\335\310d\371\242\345\275\316\255\233\231\203a\237\303\272\306\371sm\211l\012",
"\303\334\234\222\201\207d\371\242\345\275\012", "\303\334\234\222\201\207d\371\242\345\275\012",
"\266l\203\200\307t\203ua\214\012", "\266l\203\200\307t\203ua\214\012",
"\266r\226g\322", "\266r\226g\322",
"\266\375bscript\316\251\200\042[ ]\330\353\224\225\207\331\305j\255\334\234\222\201\314", "\266\375bscript\316\251\200\042[ ]\330\353\224\225\207\331\305j\255\334\234\222\201\314",
"m\342\205-\334\234\222\201\337\256y\207\360f\342l\223\203i\205\211iz\274\012", "m\342\205-\334\234\222\201\337\256y\207\360f\342l\223\203i\205\211iz\274\012",
"\271ce\274\357\305ximum \374\230\264\304\334\234\222\201\314", "\271ce\274\357\305ximum \374\230\264\304\334\234\222\201\314",
"\217\345\275\235c\344s\357b\241c\200(\042}\042\232", "\217\345\275\235c\344s\357b\241c\200(\042}\042\232",
"\231\204\202\304\273bod\223\362\270ou\202\273head\210\012", "\231\204\202\304\273bod\223\362\270ou\202\273head\210\012",
"\256ys\316\344c\337\301\310\226\206\273\265t\207c\226\242\313pu\236\332 (\327\216\232", "\256ys\316\344c\337\301\310\226\206\273\265t\207c\226\242\313pu\236\332 (\327\216\232",
"\217f\203ish\235\363\331be\370\200\343\364il\264\334\220c\205v\322", "\217f\203ish\235\363\331be\370\200\343\364il\264\334\220c\205v\322",
"dupl\332\224\200\265t; sam\200\312\272p\351s\235tw\332\322", "dupl\332\224\200\265t; sam\200\312\272p\351s\235tw\332\322",
"\273\312\367\242\340\376\252\302a\342\202\243u\200(\327\216\232", "\273\312\367\242\340\376\252\302a\342\202\243u\200(\327\216\232",
"m\342\205p\352\042#\341se\330\334\220c\205v\310betwe\212 \042#if ... #\212\334f\042\012", "m\342\205p\352\042#\341se\330\334\220c\205v\310betwe\212 \042#if ... #\212\334f\042\012",
"\042#\341seif\330\334\220c\205\376f\240\344w\207\355\042#\341se\330\334\220c\205v\322", "\042#\341seif\330\334\220c\205\376f\240\344w\207\355\042#\341se\330\334\220c\205v\322",
"\374\230\264\304\353\226d\207do\310\242\361\202\270\200\353\224\225\012", "\374\230\264\304\353\226d\207do\310\242\361\202\270\200\353\224\225\012",
"\273\220s\342\202\373\304\353\224\225\227 \360\216\012", "\273\220s\342\202\373\304\353\224\225\227 \360\216\012",
"c\226\242\275\226g\200\311\326\235\353\224\225\314", "c\226\242\275\226g\200\311\326\235\353\224\225\314",
"\273\312\367\201l\223\340\376\252s\203g\352\373(\312%d\232", "\273\312\367\201l\223\340\376\252s\203g\352\373(\312%d\232",
"\273\312\367\242\313\252\220f\210\212c\200\312\255\355\303(\312\216\232", "\273\312\367\242\313\252\220f\210\212c\200\312\255\355\303(\312\216\232",
"\327c\226\242\313bo\270 \252\220f\210\212c\200\226\206\355\303(\327\216\232", "\327c\226\242\313bo\270 \252\220f\210\212c\200\226\206\355\303(\327\216\232",
"\266\241\214\337\374\230\264\311ci\222\331\372#p\241g\305\012", "\266\241\214\337\374\230\264\311ci\222\331\372#p\241g\305\012",
"\241\214\337\374\230\264\370\305\202\211\220ad\223\326\274\012", "\241\214\337\374\230\264\370\305\202\211\220ad\223\326\274\012",
"\241\214\337\374\230\264\375pp\225\202wa\207\242\212\254\274\012", "\241\214\337\374\230\264\375pp\225\202wa\207\242\212\254\274\012",
"\251\210-\326\235\353\224\255\360\233cl\204\235be\370\200\251\200(\366\227\232", "\251\210-\326\235\353\224\255\360\233cl\204\235be\370\200\251\200(\366\227\232",
"\042\335e\267\330\353\224\255\272\266\331\042\366\330\250\314", "\042\335e\267\330\353\224\255\272\266\331\042\366\330\250\314",
"\273\312\360\355\303(\312\216\232", "\273\312\360\355\303(\312\216\232",
"#\326\200p\224\365\336\324\231\204\202\362\270 \355\211p\340be\205c \275\333c\365\012", "#\326\200p\224\365\336\324\231\204\202\362\270 \355\211p\340be\205c \275\333c\365\012",
"\203pu\202l\203\200\306\371l\201\260(aft\264\375bs\205tu\214s\232", "\203pu\202l\203\200\306\371l\201\260(aft\264\375bs\205tu\214s\232",
"\246n\325x \210r\255\372\270\200\363\201\316\255\266\273c\211l\012", "\246n\325x \210r\255\372\270\200\363\201\316\255\266\273c\211l\012",
"m\211\370m\235UTF-8 \212\343d\203g\316\255c\225rupt\235\361le: \213\012", "m\211\370m\235UTF-8 \212\343d\203g\316\255c\225rupt\235\361le: \213\012",
"\273\251\310bo\270 \042\220turn\330\226\206\042\220tur\336<\243ue>\042\012", "\273\251\310bo\270 \042\220turn\330\226\206\042\220tur\336<\243ue>\042\012",
"\203\307\222\231\212\202\220tur\336typ\310(\303& n\201-\256y\232", "\203\307\222\231\212\202\220tur\336typ\310(\303& n\201-\256y\232",
"\217k\221w\336\250\316\255\242\252\354\202\250 \323", "\217k\221w\336\250\316\255\242\252\354\202\250 \323",
"c\226\242\325k\200\252\373a\207\252\302a\342\202\243u\200f\255\355\203\233x\235\303p\333met\264\323", "c\226\242\325k\200\252\373a\207\252\302a\342\202\243u\200f\255\355\203\233x\235\303p\333met\264\323",
"\251\210-\326\235\353\224\225\207\226\206na\205\376\366\207\367\242\340\376\315e\314", "\251\210-\326\235\353\224\225\207\226\206na\205\376\366\207\367\242\340\376\315e\314",
"\252\273\255\327\367\201l\223b\341\201\260\306 \252s\203g\352au\306\345\331\323", "\252\273\255\327\367\201l\223b\341\201\260\306 \252s\203g\352au\306\345\331\323",
"\315\200\307fl\332t: \201\200\304\270\200\315\310\272\211\220ad\223a\253gn\235\306 a\221\270\264i\364le\234\325\237\323", "\315\200\307fl\332t: \201\200\304\270\200\315\310\272\211\220ad\223a\253gn\235\306 a\221\270\264i\364le\234\325\237\323",
"\221 \315\310\204\200\326\235f\255\277\012", "\221 \315\310\204\200\326\235f\255\277\012",
"\217k\221w\336au\306\345\201\321", "\217k\221w\336au\306\345\201\321",
"\217k\221w\336\315\200\216 f\255au\306\345\201\321", "\217k\221w\336\315\200\216 f\255au\306\345\201\321",
"pu\236\332 \301\310\226\206\344c\337\301\310\367\242\340\376\315\310\323", "pu\236\332 \301\310\226\206\344c\337\301\310\367\242\340\376\315\310\323",
"\315\200\301\310\367\242\313\203i\205\211iz\235\323", "\315\200\301\310\367\242\313\203i\205\211iz\235\323",
"pu\236\332 \366\207\367\242\220tur\336\256y\207\323", "pu\236\332 \366\207\367\242\220tur\336\256y\207\323",
"a\230i\262ou\207\354t; \373ov\210rid\200\272\220qui\220\206\323" "a\230i\262ou\207\354t; \373ov\210rid\200\272\220qui\220\206\323"
#endif #endif
}; };
static char *fatalmsg[] = { static char *fatalmsg[] = {
#ifdef SCPACK #ifdef SCPACK
/*100*/ "cannot read from file: \"%s\"\n", /*100*/ "cannot read from file: \"%s\"\n",
/*101*/ "cannot write to file: \"%s\"\n", /*101*/ "cannot write to file: \"%s\"\n",
/*102*/ "table overflow: \"%s\"\n", /*102*/ "table overflow: \"%s\"\n",
/* table can be: loop table /* table can be: loop table
* literal table * literal table
* staging buffer * staging buffer
* option table (response file) * option table (response file)
* peephole optimizer table * peephole optimizer table
*/ */
/*103*/ "insufficient memory\n", /*103*/ "insufficient memory\n",
/*104*/ "invalid assembler instruction \"%s\"\n", /*104*/ "invalid assembler instruction \"%s\"\n",
/*105*/ "numeric overflow, exceeding capacity\n", /*105*/ "numeric overflow, exceeding capacity\n",
/*106*/ "compiled script exceeds the maximum memory size (%ld bytes)\n", /*106*/ "compiled script exceeds the maximum memory size (%ld bytes)\n",
/*107*/ "too many error messages on one line\n", /*107*/ "too many error messages on one line\n",
/*108*/ "codepage mapping file not found\n", /*108*/ "codepage mapping file not found\n",
/*109*/ "invalid path: \"%s\"\n", /*109*/ "invalid path: \"%s\"\n",
/*110*/ "assertion failed: %s\n", /*110*/ "assertion failed: %s\n",
/*111*/ "user error: %s\n", /*111*/ "user error: %s\n",
#else #else
"c\226\242\220a\206from \361le\347", "c\226\242\220a\206from \361le\347",
"c\226\242writ\200\306 \361le\347", "c\226\242writ\200\306 \361le\347",
"t\254\200ov\210f\344w\347", "t\254\200ov\210f\344w\347",
"\203\375ff\332i\212\202mem\225y\012", "\203\375ff\332i\212\202mem\225y\012",
"\266\351se\230l\264\203\231ruc\214\321", "\266\351se\230l\264\203\231ruc\214\321",
"\374m\210\332 ov\210f\344w\316\271ce\274\357capacity\012", "\374m\210\332 ov\210f\344w\316\271ce\274\357capacity\012",
"\343\364il\235scrip\202\271ce\274\207\270\200\305ximum mem\225\223\335\200(%l\206bytes\232", "\343\364il\235scrip\202\271ce\274\207\270\200\305ximum mem\225\223\335\200(%l\206bytes\232",
"\306\371m\226\223\210r\255messag\310\331\201\200l\203\322", "\306\371m\226\223\210r\255messag\310\331\201\200l\203\322",
"\343\233pag\200\305pp\357\361\352\242fo\217d\012", "\343\233pag\200\305pp\357\361\352\242fo\217d\012",
"\266p\224h\347", "\266p\224h\347",
"\351s\210\237fail\274: \213\012", "\351s\210\237fail\274: \213\012",
"\251\264\210r\225: \213\012" "\251\264\210r\225: \213\012"
#endif #endif
}; };
static char *warnmsg[] = { static char *warnmsg[] = {
#ifdef SCPACK #ifdef SCPACK
/*200*/ "symbol \"%s\" is truncated to %d characters\n", /*200*/ "symbol \"%s\" is truncated to %d characters\n",
/*201*/ "redefinition of constant/macro (symbol \"%s\")\n", /*201*/ "redefinition of constant/macro (symbol \"%s\")\n",
/*202*/ "number of arguments does not match definition\n", /*202*/ "number of arguments does not match definition\n",
/*203*/ "symbol is never used: \"%s\"\n", /*203*/ "symbol is never used: \"%s\"\n",
/*204*/ "symbol is assigned a value that is never used: \"%s\"\n", /*204*/ "symbol is assigned a value that is never used: \"%s\"\n",
/*205*/ "redundant code: constant expression is zero\n", /*205*/ "redundant code: constant expression is zero\n",
/*206*/ "redundant test: constant expression is non-zero\n", /*206*/ "redundant test: constant expression is non-zero\n",
/*207*/ "unknown #pragma\n", /*207*/ "unknown #pragma\n",
/*208*/ "function with tag result used before definition, forcing reparse\n", /*208*/ "function with tag result used before definition, forcing reparse\n",
/*209*/ "function \"%s\" should return a value\n", /*209*/ "function \"%s\" should return a value\n",
/*210*/ "possible use of symbol before initialization: \"%s\"\n", /*210*/ "possible use of symbol before initialization: \"%s\"\n",
/*211*/ "possibly unintended assignment\n", /*211*/ "possibly unintended assignment\n",
/*212*/ "possibly unintended bitwise operation\n", /*212*/ "possibly unintended bitwise operation\n",
/*213*/ "tag mismatch\n", /*213*/ "tag mismatch\n",
/*214*/ "possibly a \"const\" array argument was intended: \"%s\"\n", /*214*/ "possibly a \"const\" array argument was intended: \"%s\"\n",
/*215*/ "expression has no effect\n", /*215*/ "expression has no effect\n",
/*216*/ "nested comment\n", /*216*/ "nested comment\n",
/*217*/ "loose indentation\n", /*217*/ "loose indentation\n",
/*218*/ "old style prototypes used with optional semicolumns\n", /*218*/ "old style prototypes used with optional semicolumns\n",
/*219*/ "local variable \"%s\" shadows a variable at a preceding level\n", /*219*/ "local variable \"%s\" shadows a variable at a preceding level\n",
/*220*/ "expression with tag override must appear between parentheses\n", /*220*/ "expression with tag override must appear between parentheses\n",
/*221*/ "label name \"%s\" shadows tag name\n", /*221*/ "label name \"%s\" shadows tag name\n",
/*222*/ "number of digits exceeds rational number precision\n", /*222*/ "number of digits exceeds rational number precision\n",
/*223*/ "redundant \"sizeof\": argument size is always 1 (symbol \"%s\")\n", /*223*/ "redundant \"sizeof\": argument size is always 1 (symbol \"%s\")\n",
/*224*/ "indeterminate array size in \"sizeof\" expression (symbol \"%s\")\n", /*224*/ "indeterminate array size in \"sizeof\" expression (symbol \"%s\")\n",
/*225*/ "unreachable code\n", /*225*/ "unreachable code\n",
/*226*/ "a variable is assigned to itself (symbol \"%s\")\n", /*226*/ "a variable is assigned to itself (symbol \"%s\")\n",
/*227*/ "more initiallers than enum fields\n", /*227*/ "more initiallers than enum fields\n",
/*228*/ "length of initialler exceeds size of the enum field\n", /*228*/ "length of initialler exceeds size of the enum field\n",
/*229*/ "index tag mismatch (symbol \"%s\")\n", /*229*/ "index tag mismatch (symbol \"%s\")\n",
/*230*/ "no implementation for state \"%s\" in function \"%s\", no fall-back\n", /*230*/ "no implementation for state \"%s\" in function \"%s\", no fall-back\n",
/*231*/ "state specification on forward declaration is ignored\n", /*231*/ "state specification on forward declaration is ignored\n",
/*232*/ "output file is written, but with compact encoding disabled\n", /*232*/ "output file is written, but with compact encoding disabled\n",
/*233*/ "state variable \"%s\" shadows a global variable\n", /*233*/ "state variable \"%s\" shadows a global variable\n",
/*234*/ "function is deprecated (symbol \"%s\") %s\n", /*234*/ "function is deprecated (symbol \"%s\") %s\n",
/*235*/ "public function lacks forward declaration (symbol \"%s\")\n", /*235*/ "public function lacks forward declaration (symbol \"%s\")\n",
/*236*/ "unknown parameter in substitution (incorrect #define pattern)\n" /*236*/ "unknown parameter in substitution (incorrect #define pattern)\n"
#else #else
"\277 \272tr\244\224\235\306 %\206\275\333c\365\314", "\277 \272tr\244\224\235\306 %\206\275\333c\365\314",
"\220\326i\237\304\354t/\305cr\371\323", "\220\326i\237\304\354t/\305cr\371\323",
"\374\230\264\304\265t\207do\310\242\345\275 \326i\214\012", "\374\230\264\304\265t\207do\310\242\345\275 \326i\214\012",
"\250 \272nev\264\251\274\347", "\250 \272nev\264\251\274\347",
"\250 \272a\253gn\235\252\243u\200\270a\202\272nev\264\251\274\347", "\250 \272a\253gn\235\252\243u\200\270a\202\272nev\264\251\274\347",
"\220d\217d\226\202\343\233: \354\202\363\331\272z\210o\012", "\220d\217d\226\202\343\233: \354\202\363\331\272z\210o\012",
"\220d\217d\226\202te\231: \354\202\363\331\272n\201-z\210o\012", "\220d\217d\226\202te\231: \354\202\363\331\272n\201-z\210o\012",
"\217k\221w\336#p\241g\305\012", "\217k\221w\336#p\241g\305\012",
"\273\362\270 \373\220s\342\202\251\235be\370\200\326i\214\316\370c\357\220p\204s\322", "\273\362\270 \373\220s\342\202\251\235be\370\200\326i\214\316\370c\357\220p\204s\322",
"\366\227 sho\342\206\220tur\336\252\243u\322", "\366\227 sho\342\206\220tur\336\252\243u\322",
"po\253\236\200\251\200\304\250 be\370\200\203i\205\211iza\214\347", "po\253\236\200\251\200\304\250 be\370\200\203i\205\211iza\214\347",
"po\253\236\223\217\203t\212\233\206a\253gn\234t\012", "po\253\236\223\217\203t\212\233\206a\253gn\234t\012",
"po\253\236\223\217\203t\212\233\206bit\362s\200\353a\214\012", "po\253\236\223\217\203t\212\233\206bit\362s\200\353a\214\012",
"\373mis\345\275\012", "\373mis\345\275\012",
"po\253\236\223\252\042\346\330\303\312wa\207\203t\212\233d\347", "po\253\236\223\252\042\346\330\303\312wa\207\203t\212\233d\347",
"\363\331\340\207\221 effect\012", "\363\331\340\207\221 effect\012",
"ne\231\235\343m\234t\012", "ne\231\235\343m\234t\012",
"\344os\200\203d\212\325\214\012", "\344os\200\203d\212\325\214\012",
"\240\206\231y\352pro\306typ\310\251\235\362\270 \350\214\337sem\332\240umn\314", "\240\206\231y\352pro\306typ\310\251\235\362\270 \350\214\337sem\332\240umn\314",
"\344c\337\327\216 s\340dow\207\252\327a\202\252\311c\274\357lev\341\012", "\344c\337\327\216 s\340dow\207\252\327a\202\252\311c\274\357lev\341\012",
"\363\331\362\270 \373ov\210rid\200\324appe\204 betwe\212 p\204\212\270ese\314", "\363\331\362\270 \373ov\210rid\200\324appe\204 betwe\212 p\204\212\270ese\314",
"lab\341 nam\200\216 s\340dow\207\373nam\322", "lab\341 nam\200\216 s\340dow\207\373nam\322",
"\374\230\264\304\334git\207\271ce\274\207\241\214\337\374\230\264\311ci\222\201\012", "\374\230\264\304\334git\207\271ce\274\207\241\214\337\374\230\264\311ci\222\201\012",
"\220d\217d\226\202\042\335e\267\042: \312\335\200\272\211way\2071 \323", "\220d\217d\226\202\042\335e\267\042: \312\335\200\272\211way\2071 \323",
"\203\233\365m\203\224\200\303\335\200\372\042\335e\267\330\363\331\323", "\203\233\365m\203\224\200\303\335\200\372\042\335e\267\330\363\331\323",
"\217\220a\275\254\200\343\233\012", "\217\220a\275\254\200\343\233\012",
"\252\327\272a\253gn\235\306 its\341f \323", "\252\327\272a\253gn\235\306 its\341f \323",
"m\225\200\203i\205\211l\210\207\270\355\212um \361\341d\314", "m\225\200\203i\205\211l\210\207\270\355\212um \361\341d\314",
"l\212g\270 \304\203i\205\211l\264\271ce\274\207\335\200\304\270\200\212um \361\341d\012", "l\212g\270 \304\203i\205\211l\264\271ce\274\207\335\200\304\270\200\212um \361\341d\012",
"\203\233x \373mis\345\275 \323", "\203\233x \373mis\345\275 \323",
"\221 i\364le\234\325\237f\255\315\200\216 \372\366\227\316\221 f\211l-back\012", "\221 i\364le\234\325\237f\255\315\200\216 \372\366\227\316\221 f\211l-back\012",
"\315\200specif\332a\237\331\370w\204\206\233cl\333\237\272ig\221\220d\012", "\315\200specif\332a\237\331\370w\204\206\233cl\333\237\272ig\221\220d\012",
"outpu\202\361\352\272writt\212\316bu\202\362\270 \343\364ac\202\212\343d\357\334s\254\274\012", "outpu\202\361\352\272writt\212\316bu\202\362\270 \343\364ac\202\212\343d\357\334s\254\274\012",
"\315\200\327\216 s\340dow\207\252g\344b\337\301\322", "\315\200\327\216 s\340dow\207\252g\344b\337\301\322",
"\273\272\233\311c\224\235\317) \213\012", "\273\272\233\311c\224\235\317) \213\012",
"pu\236\332 \273lack\207\370w\204\206\233cl\333\237\323", "pu\236\332 \273lack\207\370w\204\206\233cl\333\237\323",
"\217k\221w\336p\333met\264\372\375bs\205tu\237(\203c\225\220c\202#\326\200p\224\365n\232" "\217k\221w\336p\333met\264\372\375bs\205tu\237(\203c\225\220c\202#\326\200p\224\365n\232"
#endif #endif
}; };

File diff suppressed because it is too large Load Diff