djsrv
eb7f93e670
DIRECTOR: LINGO: Make undefined function/property cause Lingo error
2021-06-28 14:21:46 -04:00
ysj1173886760
cff54ea5db
DIRECTOR: fix the logic within.
2021-06-26 16:08:20 +02:00
djsrv
b4a7d4bdff
DIRECTOR: LINGO: Support nested chunks in readChunkRef
2021-06-25 01:52:40 -04:00
djsrv
2fd96002d7
DIRECTOR: LINGO: Support nested chunks in delete and hilite
2021-06-25 01:52:40 -04:00
djsrv
c6e6da2d2c
DIRECTOR: LINGO: Remove localvars arg from varAssign
...
I eliminated uses of this.
2021-06-25 01:52:40 -04:00
djsrv
5b436c48aa
DIRECTOR: LINGO: Clean up c_hilite
...
For consistency with c_delete
2021-06-25 01:52:40 -04:00
djsrv
9198d7364a
DIRECTOR: LINGO: Move field funcs from LB to LC
...
field, delete, and hilite were implemented as their own instructions in
the original. This also avoids having refs evaluated by LC::call.
2021-06-24 00:26:15 -04:00
djsrv
d9dfad62d2
DIRECTOR: LINGO: Evaluate var refs in LC::call
2021-06-24 00:21:25 -04:00
djsrv
3ae6829347
DIRECTOR: LINGO: Add missing func descriptions
2021-06-24 00:21:24 -04:00
djsrv
a049a0107f
DIRECTOR: LINGO: Remove evaluate on pop
...
Grammar changes have made this hack unnecessary.
2021-06-24 00:21:24 -04:00
djsrv
0a2688268b
DIRECTOR: LINGO: Fix negative bytecode chunk refs
2021-06-23 16:29:10 -04:00
djsrv
b423f6e563
DIRECTOR: LINGO: Add chunk ref instructions
2021-06-23 16:29:10 -04:00
djsrv
a433004914
DIRECTOR: LINGO: Fix chunkRef bounds check
2021-06-23 16:29:10 -04:00
djsrv
cce64b815b
DIRECTOR: LINGO: Make chunk -30000 return last chunk
...
This is what the original does.
2021-06-23 16:29:10 -04:00
djsrv
2aa766754f
DIRECTOR: LINGO: Make getObjectProp use stack
...
LC::call only pushes a stack frame and may not evaluate until later, so
we can't immediately pop its return value. This avoids that issue.
2021-06-22 18:16:53 -04:00
djsrv
478f74de3e
DIRECTOR: LINGO: Reimplement factory calls
2021-06-22 18:16:53 -04:00
djsrv
a37b2f6bb6
DIRECTOR: LINGO: Fix chunk expr type checks
2021-06-22 18:16:53 -04:00
djsrv
de3f586e32
DIRECTOR: LINGO: Fix objectproppush/assign
...
Changed it to get the object from the stack. This allows objects which
aren't simple variables.
2021-06-22 18:16:53 -04:00
djsrv
9a2eaee922
DIRECTOR: LINGO: Remove c_goto* and c_play
2021-06-22 18:16:53 -04:00
djsrv
38c0d5fddd
DIRECTOR: LINGO: Switch proplist value and prop order
...
It's the same order as the original now.
2021-06-22 18:16:53 -04:00
djsrv
4f29ef7b29
DIRECTOR: LINGO: Reimplement basic var instructions
2021-06-22 18:16:53 -04:00
djsrv
6a1829a7d5
DIRECTOR: LINGO: Alphabetize putafter & putbefore
2021-06-22 18:16:53 -04:00
djsrv
2b19132d97
DIRECTOR: LINGO: Add global, local, prop reference types
2021-06-22 18:16:53 -04:00
djsrv
a4df3c3d8e
DIRECTOR: LINGO: Eliminate Lingo::varCreate
...
This function just complicates things.
2021-06-22 18:16:53 -04:00
djsrv
34d8aabc4b
DIRECTOR: LINGO: Add DatumType enum
2021-06-22 18:16:53 -04:00
djsrv
560bae0f85
DIRECTOR: LINGO: Remove varCheck and checkImmediate
2021-06-22 18:16:53 -04:00
ysj1173886760
35892297d2
DIRECTOR: introduce isFunction to TheEntity. we use theEntity as fallback only when the entity is function, not property.
2021-06-20 14:33:53 +02:00
ysj1173886760
751aba6f3e
DIRECTOR: use lingo-the as the fallback when we can't find the correspond function
2021-06-20 14:33:53 +02:00
djsrv
a2d35bbdf3
DIRECTOR: LINGO: Temporarily disable evaluation in c_eval
2021-06-10 11:52:36 -04:00
djsrv
5e1a0d5ddc
DIRECTOR: LINGO: Use Common::isSpace to detect word boundaries
2021-06-10 10:58:27 -04:00
djsrv
85a2bf6d7d
DIRECTOR: LINGO: Implement b_hilite/c_hilite
2021-06-10 10:58:27 -04:00
djsrv
12565cb272
DIRECTOR: LINGO: Fix the number of chunks
...
Deleted these lines by accident...
2021-06-08 22:19:38 -04:00
djsrv
35e68aece3
DIRECTOR: LINGO: Fix chunk refs with start < 1
2021-06-08 21:20:19 -04:00
djsrv
b073fe1fea
DIRECTOR: LINGO: Fix char bound check
2021-06-08 21:00:12 -04:00
djsrv
e50ea9b06e
DIRECTOR: LINGO: Rework chunk references
2021-06-08 20:06:28 -04:00
djsrv
9c6165554f
DIRECTOR: LINGO: Add LC::readChunkRef
2021-06-08 20:06:28 -04:00
Scott Percival
f3b166befc
DIRECTOR: Adjust lingoexec debugging levels
...
--debuglevel=2 will show the call stack after each function call
--debuglevel=3 will show the current instruction
--debuglevel=5 will show the stack after each instruction
--debuglevel=9 will show the variables after each instruction
2021-05-24 09:08:45 +08:00
Scott Percival
b4df4f4036
DIRECTOR: LINGO: Fix memory leak in Datum
2021-04-25 23:22:51 +08:00
Eugene Sandulenko
5e7fe2dc57
JANITORIAL: Replace spaces in indentation with tabs
2021-04-15 21:20:36 +02:00
Eugene Sandulenko
cc2e31a2b3
DIRECTOR: Simplify expression
2020-08-22 10:38:06 +02:00
djsrv
c147a5c979
DIRECTOR: LINGO: Implement chunk refs
2020-08-21 21:52:54 -04:00
djsrv
4c7593659b
DIRECTOR: LINGO: Fix 0 indices in c_charToOf
2020-08-21 21:52:54 -04:00
djsrv
20e54db2ae
DIRECTOR: LINGO: Implement errors
2020-08-21 00:20:22 -04:00
djsrv
34393fde5e
DIRECTOR: LINGO: Remove c_lazyeval
2020-08-20 23:41:51 -04:00
djsrv
f49480425d
DIRECTOR: LINGO: Adjust c_eval to var changes
2020-08-20 23:41:28 -04:00
Eugene Sandulenko
e27d5ac7fc
DIRECTOR: JANITORIAL: Code formatting and unified the namespace end comments
2020-08-21 00:36:19 +02:00
Eugene Sandulenko
5d41772b5e
DIRECTOR: Added more comments
2020-08-21 00:36:19 +02:00
djsrv
a5948cfc37
DIRECTOR: LINGO: Evaluate field ref on pop
...
This simplifies handling of fields, since most of the time it should be
treated as a string. Where we actually need a raw reference, pop(false)
is used.
2020-08-20 15:53:31 -04:00
djsrv
60fe2ea32e
DIRECTOR: LINGO: Eliminate lazy vars
...
Now normal var refs are evaluated on pop. To get the reference itself,
use pop(false)
2020-08-20 15:34:13 -04:00
djsrv
205a90122a
DIRECTOR: LINGO: Warn on missing factory method
2020-08-19 14:31:48 -04:00