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