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