Commit Graph
440 Commits
Author SHA1 Message Date
djsrv 1ecb21b530 DIRECTOR: LINGO: Handle array equality peculiarity
Lingo always returns 0 for = and <> if the left array is longer.
2020-05-15 10:04:08 +02:00
djsrv 0649b280dc DIRECTOR: LINGO: Fix parray comparison
Comparison operators now check parrays' values, not their keys.
2020-05-15 10:04:08 +02:00
Scott Percival 75ed7f2039 DIRECTOR: LINGO: Replace Datum pointers in PCell 2020-05-14 20:01:02 +08:00
Scott Percival 71736bef2d DIRECTOR: LINGO: Remove Datum(Common::String *val) 2020-05-14 18:09:32 +08:00
Scott Percival 2cb83c4828 DIRECTOR: LINGO: Fix typos in LC::*Data 2020-05-14 18:09:32 +08:00
Scott Percival 8e0c72291f DIRECTOR: LINGO: Add reference counter to Symbol and Datum 2020-05-14 18:09:32 +08:00
Eugene Sandulenko 234c910fa1 DIRECTOR: LINGO: Added missing bytecode prototypes 2020-05-07 12:28:46 +02:00
Scott Percival 180822b315 DIRECTOR: LINGO: Add cb_stackpeek and cb_stackdrop 2020-05-05 23:06:37 +08:00
Eugene Sandulenko 0733b1a18e DIRECTOR: LINGO: Added sanity check to compareArrays() 2020-04-29 20:55:38 +02:00
Nathanael Gentry c74ef4136b DIRECTOR: LINGO: Implement property array comparisons 2020-04-28 23:32:57 +02:00
Nathanael Gentry 1f77ea3a31 DIRECTOR: LINGO: Finish property array datum type 2020-04-28 23:32:57 +02:00
Nathanael Gentry 94b80a2e10 DIRECTOR: LINGO: Collapse compareTo functions 2020-04-28 23:32:57 +02:00
Eugene Sandulenko 2f406baab9 DIRECTOR: LINGO: Fix code generation for menu entity getters 2020-04-18 12:12:56 +02:00
Eugene Sandulenko d2b9051f80 DIRECTOR: LINGO: Fix execution of '<entity> of menuitems' 2020-04-18 12:12:56 +02:00
djsrv a4c643052c DIRECTOR: LINGO: Implement list comparison 2020-04-09 00:51:25 +02:00
Eugene Sandulenko fff03c9002 DIRECTOR: Implement Datum::getPrintable() for printing out 2020-04-06 01:23:38 +02:00
Eugene Sandulenko 5f83a7967d DIRECTOR: Rename Datum::toType() to Datum::makeType() as less confusing 2020-04-06 00:45:14 +02:00
Eugene Sandulenko e4e5719929 DIRECTOR: Sanity check 2020-04-03 23:33:26 +02:00
Eugene Sandulenko 4b1929b6dc DIRECTOR: Fix warnings 2020-04-02 16:10:46 +02:00
Eugene Sandulenko e570423595 DIRECTOR: LINGO: Changed notion of SYMBOL to be a string. Fixed ilk keyword accordingly 2020-03-28 21:51:30 +01:00
Eugene Sandulenko 40d9ed41e2 DIRECTOR: LINGO: preprocess "play done" and remove c_playdone code 2020-03-28 21:33:41 +01:00
Eugene Sandulenko 107d40aac5 DIRECTOR: LINGO: Improved disassembly of cb_call opcode 2020-03-28 21:33:41 +01:00
djsrv 4493216098 DIRECTOR: LINGO: Implement list math 2020-03-27 22:18:44 +01:00
Roland van Laar 9ce1d470be DIRECTOR: LINGO: Director version cleanups 2020-02-29 21:48:38 +01:00
Roland van Laar de5e7ba55c DIRECTOR: LINGO: handle break from loops
Lingo has two ways to break from loops: `return` and `exit repeat`.
Both are now handled in repeat with VAR in ARRAY.
2020-02-17 23:38:09 +01:00
jepael 6da0010744 DIRECTOR: LINGO: Fix compiler warning 2020-02-16 02:32:41 +01:00
Roland van Laar 77461e636e DIRECTOR: LINGO: Implement advice from Sev.
- loop_var is out of the loop and
- extra Datum assignment for array element is removed.
2020-02-15 22:22:09 +01:00
Roland van Laar 391335f09c DIRECTOR: LINGO: Implement repeat with var in array
Lingo implements the for each loop as `repeat with VAR in ARRAY`.
1) The `ARRAY` is evaluated,
2) a loop counter is created of size(ARRAY),
3) consume the loop counter, starting at 0.
3) the ARRAY[counter] item is assiged to `VAR` and
4) the loop body executed.
5) update the loop counter with + 1
6) goto 3 till the loop counter is exhausted.
2020-02-15 22:22:09 +01:00
Roland van Laar 6c9aefe5ae DIRECTOR: LINGO: Remove ARRAY from print
Adviced by Sev in the pullrequest.
2020-02-15 22:04:48 +01:00
Roland van Laar 90020ebdef DIRECTOR: LINGO: Implemented ARRAY variable.
Arrays can be assigned to variables and those variables can be fetched.
Includes implementation to `put` the array.
2020-02-15 22:04:48 +01:00
Eugene Sandulenko a7a3a6bbe7 DIRECTOR: LINGO: Fix array construction 2020-02-09 20:09:01 +01:00
Eugene Sandulenko e4cbde1e9e DIRECTOR: LINGO: Implemented c_arraypush() 2020-02-09 19:57:36 +01:00
Eugene Sandulenko cf1011863f DIRECTOR: Switch Datum array subtype to array of Datum 2020-02-09 19:51:04 +01:00
Scott Percival 189acb438d DIRECTOR: LINGO: Add split contexts for main and shared archives 2020-02-09 12:14:14 +08:00
Scott Percival ab09750ac9 DIRECTOR: LINGO: Partial implementation of c_of 2020-02-08 14:50:05 +08:00
Scott Percival 31c8e09540 DIRECTOR: LINGO: Fix argument order of c_of 2020-02-08 14:50:05 +08:00
Scott Percival 42462f1e11 DIRECTOR: LINGO: Add opcode stubs, decouple script context fetching 2020-02-08 14:50:05 +08:00
Scott Percival 00a59570be DIRECTOR: LINGO: Implement c_before and c_after 2020-02-06 19:41:46 +08:00
Scott Percival 44d985d122 DIRECTOR: LINGO: Process variable and argument names 2020-01-25 01:38:39 +08:00
Eugene Sandulenko 4aa8bd69c2 DIRECTOR: LINGO: Parse object field references 2020-01-21 17:41:10 +01:00
Scott Percival 7d11a2aa38 DIRECTOR: LINGO: Fix REFERENCE support in varFetch and varAssign 2020-01-20 00:14:54 +08:00
Scott Percival 84557806ec DIRECTOR: LINGO: Initialise global list in bytecode 2020-01-20 00:14:54 +08:00
Scott Percival c715b9646a DIRECTOR: LINGO: Split out helper methods varFetch and varAssign 2020-01-20 00:14:54 +08:00
Eugene Sandulenko 388963f844 DIRECTOR: LINGO: Implement parsing and stub for 'repeat with...in <list>' 2020-01-19 13:43:58 +01:00
Eugene Sandulenko 84e8ab4956 DIRECTOR: LINGO: Proper stub for 'ancestor' property 2020-01-19 13:21:34 +01:00
Eugene Sandulenko e0810084ab DIRECTOR: LINGO: Implement c_nextRepeat() 2020-01-19 01:41:36 +01:00
Eugene Sandulenko d8a3e6573a DIRECTOR: LINGO: Added parsing and stub for 'next repeat' construct 2020-01-18 13:28:36 +01:00
Scott Percival c07ff2e5f0 DIRECTOR: LINGO: Add more bytecode stubs 2020-01-18 14:12:56 +08:00
Scott Percival bb61cca451 DIRECTOR: LINGO: Add reference to script context in Symbol, allow local calls 2020-01-18 12:30:31 +08:00
Scott Percival 87f6d6257d DIRECTOR: LINGO: Add previous script context to call frame 2020-01-18 11:36:47 +08:00