Commit Graph
440 Commits
Author SHA1 Message Date
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