Commit Graph

23 Commits

Author SHA1 Message Date
MikeW50 8ca93af80b
Update call.pas 2018-03-27 08:58:20 -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.
Example:

Type

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

fowardObject = Object (myObject)
  procedure init; override;
end;

---
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
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