Commit Graph

34 Commits

Author SHA1 Message Date
MikeW50 d660acc061
Merge pull request #16 from ksherlock/underscore_reserved_words
Reserved identifier table lookup error
2021-07-25 22:11:10 -06:00
MikeW50 e6ddb71efa
Merge pull request #17 from pkclsoft/master
Adding Tool.Interface code to the repo.
2021-07-25 22:10:01 -06:00
Peter Easdown dca9e5a5f5 Fixed the setFileInfoOSDCB type to correct a typo and the types used for the create and mod DateTime. 2021-07-26 09:07:22 +10:00
Peter Easdown d6fdcf81cc Increased the size of GSOSInString to 508 bytes. Some GSOS calls seem to require this (DInfoGS being one example). 2021-07-26 09:07:12 +10:00
Peter Easdown 2eec05e465 Adding Tool.Interface to the repo (from the OPUS package). 2021-07-26 09:01:22 +10:00
Kelvin Sherlock d2cddbdac9 when checking if an identifier is a reserved word, the scanner has a table mapping the first character to the number of reserved words starting with that character.
However, it only has entries for characters A-Z.  _ is a valid leading character which causes unexpected results.
2020-03-19 23:54:22 -04:00
MikeW50 a4cd0f2ea5
Merge pull request #14 from ksherlock/var_debugger
debugger symbol tables for formal ("var") parameters
2018-03-27 09:02:35 -06:00
MikeW50 ab5d925392
Merge pull request #11 from ksherlock/forward_objects
Forward objects
2018-03-27 08:59:03 -06:00
MikeW50 8ca93af80b
Update call.pas 2018-03-27 08:58:20 -06:00
MikeW50 e8ff5c431d
Merge pull request #10 from ksherlock/gsbug-debug-names
GSBug debug names
2018-03-27 08:56:43 -06:00
Kelvin Sherlock 7d6b083546 This patch allows forward object declarations, in the same manner as delphi. To pre-declare an object, use a semicolon after the object keyword.


forwardObject = Object;  {forward declaration}
myObject = Object
  count: integer;
  procedure init;
  function createForwardObject: forwardObject;

fowardObject = Object (myObject)
  procedure init; override;

outstanding issues:

new(forward_declared_object); -> error 44, "error in type of standard procedure parameter"

OtherObject = Object (ForwardDeclaredObject) end; -> errror 129, "type of variable must be object"

debugger symbol tables
2018-03-25 21:57:41 -04:00
Kelvin Sherlock 386d7e2f74 support for gsbug / nifty list inline debug names 2018-03-25 21:49:31 -04:00
Kelvin Sherlock 18371d9c16 rebasing on updated code base. 2018-03-25 21:41:36 -04:00
MikeW50 0548a011a9
Merge pull request #15 from ksherlock/debugger_strings
refine debugger string types
2018-03-25 15:19:39 -06:00
MikeW50 d2791b3c53
Merge pull request #12 from ksherlock/empty_record_debugger_tables
Empty record debugger tables
2018-03-25 15:18:45 -06:00
MikeW50 33a05bd253
Merge pull request #9 from ksherlock/patch0005
debugger - bad code generated for array symbol tables
2018-03-25 15:15:46 -06:00
MikeW50 1c91c2f1d1
Merge pull request #8 from ksherlock/patch0004
records within records can generate a bad displacement in the debugger symbol table.
2018-03-25 15:15:22 -06:00
MikeW50 fcbf1b7896
Merge pull request #7 from ksherlock/patch0003
pragma debug $1 doesn't enable profiling code
2018-03-25 15:14:40 -06:00
MikeW50 16f41dbada
Merge pull request #6 from ksherlock/patch0002
initialize the fast file option list pointer to nil
2018-03-25 15:14:05 -06:00
MikeW50 92cd5b6c4e
Merge pull request #5 from ksherlock/patch0001
bug in division routines.
2018-03-25 15:13:36 -06:00
MikeW50 7d095d99f6
Merge pull request #3 from ksherlock/patch_1
Uninitialized object field
2018-03-25 15:12:32 -06:00
MikeW50 4736864a57
Merge pull request #2 from ksherlock/GetTypDisp-bug
GetTypeDisp bug
2018-03-25 15:11:48 -06:00
MikeW50 bb88b94ee5
Merge pull request #1 from ksherlock/crlf
cr / lf conversion.
2018-03-25 15:10:18 -06:00
Kelvin Sherlock 6be050fcd2 previous code tried to encode a "packed array[..] of char" as a c-string. But it didn't actually work (it was never considered packed due to looking in the wrong place).
Additionally, this refines it so that
- packed array[1..x] of char is encoded as a c-string
- packed array[0..x] of char is encoded as a p-string
- packed array[a..x] of char (where a not in [1,2]) is not considered a string
- packed array[..] of boolean isn't considered a string
2018-03-24 22:24:05 -04:00
Kelvin Sherlock 6f88fe5cee records or objects without fields (including forward declared objects) generate bad debugger symbol tables since there is no terminating field.
This generates a fake FIELD field to compensate.
2018-03-16 21:04:26 -04:00
Kelvin Sherlock 1a89445ae7 debugger - bad code generated for array symbol tables
Fields are in the wrong order and it returns sizes for the array type rather than the element type.
2018-03-15 23:18:34 -04:00
Kelvin Sherlock 2805ff6877 records within records can generate a bad displacement in the debugger symbol table. 2018-03-15 23:15:42 -04:00
Kelvin Sherlock 82661e6617 pragma debug $1 doesn't enable profiling code
(profiling code is needed to generate debug code for functions and lines)

compile +D enables debugging and profiling.
2018-03-15 23:15:30 -04:00
Kelvin Sherlock ff7694ca45 initialize the fast file option list pointer to nil
(ORCA shell currently ignores the option list but maybe someday it will be supported...)
2018-03-15 23:15:06 -04:00
Kelvin Sherlock 1d0242daa1 bug in division routines.
see byteworksinc/ORCA-C@f4ad0fa#diff-321d85ea2e19d2a7f2555cfa70cbef7e
2018-03-15 23:14:48 -04:00
Kelvin Sherlock 012d936d3f when generating a debugger symbol table, GetTypeDisp returns 0 for not found or for a displacement of 0. Not good. This uses a noDisp/-1 const (as does ORCA/C). 2018-03-13 15:48:23 -04:00
Kelvin Sherlock 63839d81a0 Uninitialized field when declaring objects without any data fields causes spurious "assignment of files not allowed" error. 2018-03-13 15:42:58 -04:00
Kelvin Sherlock cf72a073f8 cr / lf conversion. 2018-03-12 14:15:39 -04:00
mikew50 dbb32024b6 ORCA/Pascal 2.2 source from the Opus ][ CD 2018-03-11 20:21:14 -06:00