b3cf7e052ddf: Fix FileSystem.cpp build on GCC.
David Anderson <dvander@alliedmods.net> - Tue, 01 Jan 2013 20:08:34 -0800 - rev 255
Fix FileSystem.cpp build on GCC.
cd167be62cbe: Fix Linux build.
David Anderson <dvander@alliedmods.net> - Tue, 01 Jan 2013 20:07:09 -0800 - rev 254
Fix Linux build.
544c478362c2: Add WIN32 define for MSVC builds.
David Anderson <dvander@alliedmods.net> - Tue, 01 Jan 2013 20:06:25 -0800 - rev 253
Add WIN32 define for MSVC builds.
1dee2330aa78: Fix linux/mac support.
David Anderson <dvander@alliedmods.net> - Tue, 01 Jan 2013 16:28:34 -0800 - rev 252
Fix linux/mac support.
ca99a81745fe: Refactor compilation process around the new concept of packages.
David Anderson <dvander@alliedmods.net> - Tue, 01 Jan 2013 15:34:07 -0800 - rev 251
Refactor compilation process around the new concept of packages.
0998a43cc155: Collect error messages per-translation unit.
David Anderson <dvander@alliedmods.net> - Sat, 29 Dec 2012 00:55:38 -0800 - rev 250
Collect error messages per-translation unit.
82b1f8bc93a9: Infer fixed array types from string literals.
David Anderson <dvander@alliedmods.net> - Sat, 29 Dec 2012 00:12:27 -0800 - rev 249
Infer fixed array types from string literals.
372adeda3b22: Fix typo in ObjectVisitor.h
David Anderson <dvander@alliedmods.net> - Fri, 28 Dec 2012 22:47:05 -0800 - rev 248
Fix typo in ObjectVisitor.h
7721042bdb67: Implement dependent char arrays.
David Anderson <dvander@alliedmods.net> - Fri, 28 Dec 2012 17:13:51 -0800 - rev 247
Implement dependent char arrays.
f9c4371d59d4: Add support for unary - and bitcast operator.
David Anderson <dvander@alliedmods.net> - Thu, 27 Dec 2012 21:07:03 -0800 - rev 246
Add support for unary - and bitcast operator.
9371f058625a: Support admin.inc again.
David Anderson <dvander@alliedmods.net> - Thu, 27 Dec 2012 20:44:50 -0800 - rev 245
Support admin.inc again.
3c57bbf22aa2: Fix clang bustage.
David Anderson <dvander@alliedmods.net> - Wed, 26 Dec 2012 17:20:55 -0800 - rev 244
Fix clang bustage.
3d94c73a824c: Fix build bustage.
David Anderson <dvander@alliedmods.net> - Wed, 26 Dec 2012 17:19:49 -0800 - rev 243
Fix build bustage.
b7d14a8b918e: Fix typo.
David Anderson <dvander@alliedmods.net> - Wed, 26 Dec 2012 17:18:15 -0800 - rev 242
Fix typo.
18f3010a358c: Implement |const| keyword.
David Anderson <dvander@alliedmods.net> - Wed, 26 Dec 2012 17:14:12 -0800 - rev 241
Implement |const| keyword.
e3c851a14f16: Add weak hashtable to manage qual types.
David Anderson <dvander@alliedmods.net> - Tue, 25 Dec 2012 18:13:02 -0800 - rev 240
Add weak hashtable to manage qual types.
572668ef742b: More const preparation: allow type casts to follow qualification.
David Anderson <dvander@alliedmods.net> - Tue, 25 Dec 2012 17:02:07 -0800 - rev 239
More const preparation: allow type casts to follow qualification.
e9bec7549c28: Preparatory refactoring for const types.
David Anderson <dvander@alliedmods.net> - Tue, 25 Dec 2012 16:32:06 -0800 - rev 238
Preparatory refactoring for const types.
c77540a61905: Don't allow declaring void variables.
David Anderson <dvander@alliedmods.net> - Mon, 24 Dec 2012 16:43:22 -0800 - rev 237
Don't allow declaring void variables.
072f1114ea5d: Re-implement array assignment.
David Anderson <dvander@alliedmods.net> - Mon, 24 Dec 2012 16:09:13 -0800 - rev 236
Re-implement array assignment.
43287eef2fff: Move PrimitiveType_String to a dedicated string type.
David Anderson <dvander@alliedmods.net> - Mon, 24 Dec 2012 02:56:02 -0800 - rev 235
Move PrimitiveType_String to a dedicated string type.
26e3035cdffc: Get string literals working again.
David Anderson <dvander@alliedmods.net> - Mon, 24 Dec 2012 02:49:20 -0800 - rev 234
Get string literals working again.
bbb498ccb4ac: Re-add enum support.
David Anderson <dvander@alliedmods.net> - Sat, 22 Dec 2012 23:18:57 -0800 - rev 233
Re-add enum support.
2b8512340180: Re-introduce definite return analysis.
David Anderson <dvander@alliedmods.net> - Sat, 22 Dec 2012 19:48:43 -0800 - rev 232
Re-introduce definite return analysis.
6030e0b46fe2: Remove duplicate test.
David Anderson <dvander@alliedmods.net> - Sat, 22 Dec 2012 18:25:31 -0800 - rev 231
Remove duplicate test.
fb3cd08bc7fb: Re-add LIFO stack optimizations.
David Anderson <dvander@alliedmods.net> - Sat, 22 Dec 2012 18:22:14 -0800 - rev 230
Re-add LIFO stack optimizations.
ce072f38628c: Add divide-by-zero test.
David Anderson <dvander@alliedmods.net> - Sat, 22 Dec 2012 16:42:20 -0800 - rev 229
Add divide-by-zero test.
66a0028d86c5: Add preinc-ref test.
David Anderson <dvander@alliedmods.net> - Sat, 22 Dec 2012 16:25:16 -0800 - rev 228
Add preinc-ref test.
2443792ea5a3: Add postinc-ref test.
David Anderson <dvander@alliedmods.net> - Sat, 22 Dec 2012 16:24:04 -0800 - rev 227
Add postinc-ref test.
a908faaf79a8: Add ref-var test.
David Anderson <dvander@alliedmods.net> - Sat, 22 Dec 2012 16:22:49 -0800 - rev 226
Add ref-var test.
e89c6980e8ff: Add ref-expr test.
David Anderson <dvander@alliedmods.net> - Sat, 22 Dec 2012 16:21:43 -0800 - rev 225
Add ref-expr test.
321a652349a6: Fix indentation.
David Anderson <dvander@alliedmods.net> - Thu, 20 Dec 2012 01:09:17 -0800 - rev 224
Fix indentation.
38e6d2e0e702: Add msvc filters file.
David Anderson <dvander@alliedmods.net> - Thu, 20 Dec 2012 01:06:30 -0800 - rev 223
Add msvc filters file.
0cde1379b29f: Re-added support for reference arguments.
David Anderson <dvander@alliedmods.net> - Thu, 20 Dec 2012 00:59:38 -0800 - rev 222
Re-added support for reference arguments.
0c588a96837c: Re-add line and column information to bytecode.
David Anderson <dvander@alliedmods.net> - Mon, 19 Nov 2012 02:12:13 -0800 - rev 221
Re-add line and column information to bytecode.
5df4a112967d: Re-added parameter support.
David Anderson <dvander@alliedmods.net> - Mon, 19 Nov 2012 01:13:44 -0800 - rev 220
Re-added parameter support.
99e534728b76: Moved another test case.
David Anderson <dvander@alliedmods.net> - Sun, 18 Nov 2012 22:18:23 -0800 - rev 219
Moved another test case.
ccb089827f87: Re-add postinc support.
David Anderson <dvander@alliedmods.net> - Sun, 18 Nov 2012 16:10:43 -0800 - rev 218
Re-add postinc support.
c22e983b3b6e: Get preinc working again.
David Anderson <dvander@alliedmods.net> - Sun, 18 Nov 2012 15:50:41 -0800 - rev 217
Get preinc working again.
ea63f1680097: More GCC bogosity.
David Anderson <dvander@alliedmods.net> - Sun, 18 Nov 2012 15:26:12 -0800 - rev 216
More GCC bogosity.
b8f650a441a5: Get load-store assign ops working again.
David Anderson <dvander@alliedmods.net> - Sun, 18 Nov 2012 15:24:30 -0800 - rev 215
Get load-store assign ops working again.
e1a6deaa6ebe: Fix timeout handling in the test harness.
David Anderson <dvander@alliedmods.net> - Sun, 18 Nov 2012 15:00:08 -0800 - rev 214
Fix timeout handling in the test harness.
a9b8d24967d6: Fix GCC retardedness.
David Anderson <dvander@alliedmods.net> - Sun, 18 Nov 2012 14:56:09 -0800 - rev 213
Fix GCC retardedness.
443d24cfdf2d: Added array support back.
David Anderson <dvander@alliedmods.net> - Sun, 18 Nov 2012 14:53:23 -0800 - rev 212
Added array support back.
6c1cc50c4808: Prep for ceval.
David Anderson <dvander@alliedmods.net> - Sat, 17 Nov 2012 23:13:39 -0800 - rev 211
Prep for ceval.
2f9997088e9b: Added missing file.
David Anderson <dvander@alliedmods.net> - Sat, 17 Nov 2012 23:12:50 -0800 - rev 210
Added missing file.
5cbec15fadfe: Split ArrayType from Type.
David Anderson <dvander@alliedmods.net> - Sat, 17 Nov 2012 23:11:38 -0800 - rev 209
Split ArrayType from Type.
7c5be05296e3: Re-add support for |if|, |continue|, |break|.
David Anderson <dvander@alliedmods.net> - Sat, 17 Nov 2012 22:02:08 -0800 - rev 208
Re-add support for |if|, |continue|, |break|.
04ce04a54936: Add test for bitops and fix a bug in >>>
David Anderson <dvander@alliedmods.net> - Sat, 17 Nov 2012 20:23:36 -0800 - rev 207
Add test for bitops and fix a bug in >>>
3a896e9b57e2: Add test for |do|.
David Anderson <dvander@alliedmods.net> - Sat, 17 Nov 2012 20:11:05 -0800 - rev 206
Add test for |do|.
5a91709da263: Fix test harness name printing.
David Anderson <dvander@alliedmods.net> - Sat, 17 Nov 2012 20:09:02 -0800 - rev 205
Fix test harness name printing.
ff89b2640fba: Added missing tests.
David Anderson <dvander@alliedmods.net> - Sat, 17 Nov 2012 20:03:57 -0800 - rev 204
Added missing tests.
3c205ce50118: Add |while| and |do-while| support back.
David Anderson <dvander@alliedmods.net> - Sat, 17 Nov 2012 20:02:38 -0800 - rev 203
Add |while| and |do-while| support back.
c3d867f81d29: Trigger build.
David Anderson <dvander@alliedmods.net> - Sat, 17 Nov 2012 19:48:43 -0800 - rev 202
Trigger build.
54f3a4f41f61: Trigger a build.
David Anderson <dvander@alliedmods.net> - Sat, 17 Nov 2012 19:33:30 -0800 - rev 201
Trigger a build.
e0a601465746: Fix OS X build.
David Anderson <dvander@alliedmods.net> - Sat, 17 Nov 2012 19:23:39 -0800 - rev 200
Fix OS X build.
b690381dcb35: Fix Linux 64-bit build again.
David Anderson <dvander@alliedmods.net> - Sat, 17 Nov 2012 19:22:27 -0800 - rev 199
Fix Linux 64-bit build again.
fb52e868f928: Fix Linux 64-bit build.
David Anderson <dvander@alliedmods.net> - Sat, 17 Nov 2012 19:19:34 -0800 - rev 198
Fix Linux 64-bit build.
f5a5a3926775: Bump version to clobber.
David Anderson <dvander@alliedmods.net> - Sat, 17 Nov 2012 19:09:45 -0800 - rev 197
Bump version to clobber.
9904633b1dfc: Fix Linux build problems.
David Anderson <dvander@alliedmods.net> - Sat, 17 Nov 2012 19:07:49 -0800 - rev 196
Fix Linux build problems.
c1ba166f3fc4: Massive SemA/BC refactoring to support better type systems. Read on for more.
David Anderson <dvander@alliedmods.net> - Sat, 17 Nov 2012 18:41:01 -0800 - rev 195
Massive SemA/BC refactoring to support better type systems. Read on for more.
The previous compiler had a simple pipeline, best outlined as:
(1) Parsing and name binding -> AST
(2) Storage allocation -> AST
(3) Semantic Analysis (SemA) -> AST
(4) Bytecode Compilation (BC) -> Code
This pipeline, unfortunately, had two problems. First, name binding cannot be performed in one pass if we wish to have multi-file support in the form of modules. Name binding must be two-pass.
Second, because SemA was only capable of annotating AST nodes with a single type, most coercion work had to be duplicated in the BC phase, as coercion was not explicit in the SemA output. This made introducing new type rules extremely difficult, and all but precluded concepts like operator overloading (or overloading at all).
This patch rewrites most of Keima's backend. Of interest are the following changes:
(1) CompileContext has been refactored around future multi-file support.
(2) Parsing no longer performs any name binding.
(3) The grammar for type-and-name has been changed from:
(Label | Identifier)? Identifier
to:
Type? Identifier
where:
Type ::= OldType | NewType
OldType ::= Label
NewType ::= Identifier (. NewType)*
Although we do not implement the full production for Type yet, this
distinction is important. A type identifier is now affixed to the AST
as an Expression (right now, always a NameProxy), so it can fully
participate in name binding.
(4) Immediately after parsing, the AST goes through a NamePopulation phase.
This phase creates Scope objects for every scope which declares a name,
and if those names are declaring types or functions, a Symbol is created
and entered into the scope. Symbols entirely replace the old BoundName
classes.
(5) After NamePopulation comes NameBinding. This phase performs three steps:
(a) Links Scope objects together, to form a tree.
(b) Binds any free name to an existing name in the scope chain.
(c) Creates and registers any Symbols for names which have not yet been
added to the scope (for example, local variables).
In accordance, all "allocation" and "binding" concepts have been removed
from Scopes, which are now lightweight container classes.
(6) SemA now generates bytecode for each statement in the AST. Expression
compilation is performed via a separate mechanism called HIR (High-level
Intermediate Representation). To analyze an expression, SemA will walk
the AST, and produce a HIR object for each node. HIR is typed, and SemA
may insert coercion nodes, or even expand an AST node into multiple HIR
nodes. The result of evaluating an expression in SemA is therefore the
the root of a HIR tree, which SemA then sends to the HIRTranslator, which
performs bytecode generation.
As before, SemA still performs full semantic analysis. However, not it
also produces each function's bytecode.
This split allows us to decompose potentially complex semantics into
a more fine-grained, AST-like structure, which can have very simple
code-generation logic. For example, (1.0 + 5) might look like:
HAdd(HFloat(1.0), HConvert(HInteger(5), <Float>))
As part of this decomposition, many opcodes have been removed. Rather than
using typed jumps, we now expand jumps into longer tests. For example:
jge.f <label>
becomes:
ge.f
cvt.f2b
jt <label>
This simplifies the pipeline, and JITs should be able to melt the added
work away.
HIR is not used at a statement level, and HIR does not have any concept
of control-flow.
(7) The old BytecodeCompiler has been removed, as its work is now split
between SemA and HIRTranslator.
In addition, some minor refactorings have taken place:
(1) Opcodes.tbl no longer hardcodes numbers (aaah).
(2) Type has been split into smaller, typed structs.
(3) BytecodeEmitter no longer relies on Pools or RootScopes.
(4) SemA is now responsible for variable/storage allocation.
(5) Native table are now global, rather than per-module. As such, native
declarations now result in a Native object (which still requires a
CALLNATIVE opcode), which is an index into the global table. Natives
must be bound globally. This is in preparation for module support.
(6) Publics are no longer tracked, but rather registered via a global
callback upon module load. This callback can be set by embedders. This
is in preparation for multi-file support.
(7) The BytecodeEmitter now performs Symbol allocations itself, and it
also generates Code objects itself, which removes a good deal of
complexity.
Finally, a test harness has been added. This harness is a python script which finds *.test files, recursively, in the tests folder. For each file it runs the corresponding .sp. The contents of the .test file must match stdout+stderr.
b029d63565a2: Implement sizeof operator.
David Anderson <dvander@alliedmods.net> - Mon, 17 Sep 2012 00:10:01 -0700 - rev 194
Implement sizeof operator.
970abfc9f077: Fix bug where assigning string literals to references would not create copies.
David Anderson <dvander@alliedmods.net> - Sun, 16 Sep 2012 23:33:48 -0700 - rev 193
Fix bug where assigning string literals to references would not create copies.
23a804fa1d3e: Allow structs to contain arrays.
David Anderson <dvander@alliedmods.net> - Sun, 16 Sep 2012 23:15:13 -0700 - rev 192
Allow structs to contain arrays.
9d17f29fe16a: Allow returning arrays from functions.
David Anderson <dvander@alliedmods.net> - Sun, 16 Sep 2012 22:49:54 -0700 - rev 191
Allow returning arrays from functions.
dd04fce774cd: Enable dynamic array declarations.
David Anderson <dvander@alliedmods.net> - Sun, 16 Sep 2012 21:59:26 -0700 - rev 190
Enable dynamic array declarations.
eee18bf13c9b: Fix bugs where "new x[x]" or "new x = x" would compile.
David Anderson <dvander@alliedmods.net> - Sun, 16 Sep 2012 21:59:18 -0700 - rev 189
Fix bugs where "new x[x]" or "new x = x" would compile.
bab29bcec7fe: Restructure Array so the elements vector can be replaced.
David Anderson <dvander@alliedmods.net> - Sun, 16 Sep 2012 21:34:10 -0700 - rev 188
Restructure Array so the elements vector can be replaced.
9308d52205a0: Add support for SP1-style fixed array initializers.
David Anderson <dvander@alliedmods.net> - Sun, 16 Sep 2012 19:02:23 -0700 - rev 187
Add support for SP1-style fixed array initializers.
03a663e96860: Allow more empty array creation.
David Anderson <dvander@alliedmods.net> - Sat, 15 Sep 2012 19:33:24 -0700 - rev 186
Allow more empty array creation.
10936f3a2ba3: Added support for declaring empty-length arrays.
David Anderson <dvander@alliedmods.net> - Sat, 15 Sep 2012 18:25:54 -0700 - rev 185
Added support for declaring empty-length arrays.
387d76b1e981: Add support for array reference semantics.
David Anderson <dvander@alliedmods.net> - Sat, 15 Sep 2012 17:39:45 -0700 - rev 184
Add support for array reference semantics.
05571208642f: Fix bug in error reporting for array assignment dimension mismatches.
David Anderson <dvander@alliedmods.net> - Sat, 15 Sep 2012 13:32:01 -0700 - rev 183
Fix bug in error reporting for array assignment dimension mismatches.
c52ca323063f: Do not create LIFO arrays.
David Anderson <dvander@alliedmods.net> - Sat, 15 Sep 2012 13:15:51 -0700 - rev 182
Do not create LIFO arrays.
e731795f925c: Add Box source files to solution file (bug 5474, r=dvander).
Michael Busby <mibusby@gmail.com> - Fri, 14 Sep 2012 02:38:14 -0700 - rev 181
Add Box source files to solution file (
bug 5474, r=dvander).
b98a56a533d0: Empty structs throw a compiler error instead of crashing the vm. (bug 5475, r=dvander).
Michael Busby <mibusby@gmail.com> - Tue, 04 Sep 2012 21:03:22 -0700 - rev 180
Empty structs throw a compiler error instead of crashing the vm. (
bug 5475, r=dvander).
5f3c91fa6058: Fix some *VERY* confusing nomenclature in CopyArray().
David Anderson <dvander@alliedmods.net> - Thu, 13 Sep 2012 23:58:22 -0700 - rev 179
Fix some *VERY* confusing nomenclature in CopyArray().
9efe9a1456fd: Properly root CopyStruct/CopyArray.
David Anderson <dvander@alliedmods.net> - Thu, 13 Sep 2012 23:52:25 -0700 - rev 178
Properly root CopyStruct/CopyArray.
56f7e5b0243c: Fix bug in bytecode resizing.
David Anderson <dvander@alliedmods.net> - Sun, 02 Sep 2012 13:06:09 -0700 - rev 177
Fix bug in bytecode resizing.
2b9141b01023: Add hex literal support.
David Anderson <dvander@alliedmods.net> - Sat, 01 Sep 2012 17:11:06 -0700 - rev 176
Add hex literal support.
f875ce723f2c: Fix assign-op expressions on globals.
David Anderson <dvander@alliedmods.net> - Sat, 01 Sep 2012 17:10:56 -0700 - rev 175
Fix assign-op expressions on globals.
e718b56aba78: Implemented callbacks.
David Anderson <dvander@alliedmods.net> - Sat, 01 Sep 2012 16:36:20 -0700 - rev 174
Implemented callbacks.
bbf9f3809d55: Fix bug where slow switches do not pop the stack.
David Anderson <dvander@alliedmods.net> - Sun, 12 Aug 2012 20:51:31 -0700 - rev 173
Fix bug where slow switches do not pop the stack.
48cffae8c9e0: Implement switch.
David Anderson <dvander@alliedmods.net> - Sun, 12 Aug 2012 20:48:49 -0700 - rev 172
Implement switch.
023711891116: Fix bug where keywords can be used as labels.
David Anderson <dvander@alliedmods.net> - Sun, 12 Aug 2012 13:22:56 -0700 - rev 171
Fix bug where keywords can be used as labels.
5e4570966ece: Parser support for public variables.
David Anderson <dvander@alliedmods.net> - Sat, 11 Aug 2012 12:11:39 -0700 - rev 170
Parser support for public variables.
0456a16c2a63: Implement default string arguments.
David Anderson <dvander@alliedmods.net> - Mon, 06 Aug 2012 02:03:36 -0700 - rev 169
Implement default string arguments.
4d0fff61d65e: Added runtime support for default arguments.
David Anderson <dvander@alliedmods.net> - Sun, 05 Aug 2012 21:24:41 -0700 - rev 168
Added runtime support for default arguments.
cf82769eb136: Added bogo "unchecked" type that will evolve later.
David Anderson <dvander@alliedmods.net> - Sun, 05 Aug 2012 15:38:52 -0700 - rev 167
Added bogo "unchecked" type that will evolve later.
3ac2a36a7a0c: Fixed IndexExpressions not computing slices for calls.
David Anderson <dvander@alliedmods.net> - Sun, 05 Aug 2012 14:19:19 -0700 - rev 166
Fixed IndexExpressions not computing slices for calls.
b67697fba413: Added support for comma-delimited variable declarations.
David Anderson <dvander@alliedmods.net> - Sun, 05 Aug 2012 14:19:05 -0700 - rev 165
Added support for comma-delimited variable declarations.
3bf7c007883d: Support FieldExpressions as references.
David Anderson <dvander@alliedmods.net> - Sun, 05 Aug 2012 12:55:51 -0700 - rev 164
Support FieldExpressions as references.
efc3f91dbe42: Added printing natives.
David Anderson <dvander@alliedmods.net> - Sun, 05 Aug 2012 02:17:40 -0700 - rev 163
Added printing natives.
c9fa93ce2f1f: Fixed rooting bug in Ke::Compile.
David Anderson <dvander@alliedmods.net> - Sun, 05 Aug 2012 01:56:10 -0700 - rev 162
Fixed rooting bug in Ke::Compile.
b3f0aaee735a: Clean up object size handling so the GC has any hope of working. Also, clean up shell.
David Anderson <dvander@alliedmods.net> - Sun, 05 Aug 2012 01:45:37 -0700 - rev 161
Clean up object size handling so the GC has any hope of working. Also, clean up shell.
12807399b953: Fix character array indexing.
David Anderson <dvander@alliedmods.net> - Sun, 05 Aug 2012 01:28:12 -0700 - rev 160
Fix character array indexing.
d515dceb12f9: Forbid String:cell in structs.
David Anderson <dvander@alliedmods.net> - Sun, 05 Aug 2012 01:24:46 -0700 - rev 159
Forbid String:cell in structs.
91071a2255bf: Remove OP_BOUNDS in favor of an inline check.
David Anderson <dvander@alliedmods.net> - Sun, 05 Aug 2012 01:15:35 -0700 - rev 158
Remove OP_BOUNDS in favor of an inline check.
b760e8cb29a8: Clean up array ops to match the new GET/SETFIELD style.
David Anderson <dvander@alliedmods.net> - Sun, 05 Aug 2012 01:10:49 -0700 - rev 157
Clean up array ops to match the new GET/SETFIELD style.
0d28dc5af6c7: Re-allow arrays to nest.
David Anderson <dvander@alliedmods.net> - Sun, 05 Aug 2012 00:49:31 -0700 - rev 156
Re-allow arrays to nest.
7926a7921fa3: Implement array copying (correctly).
David Anderson <dvander@alliedmods.net> - Sun, 05 Aug 2012 00:45:06 -0700 - rev 155
Implement array copying (correctly).
a85a0303bcb8: Refactory array maps to allow arrays of structs.
David Anderson <dvander@alliedmods.net> - Sun, 05 Aug 2012 00:31:20 -0700 - rev 154
Refactory array maps to allow arrays of structs.
fc91c4a3dfe2: Enable struct composition.
David Anderson <dvander@alliedmods.net> - Sat, 04 Aug 2012 23:58:23 -0700 - rev 153
Enable struct composition.
153d0cafc1fd: Support assigning structs.
David Anderson <dvander@alliedmods.net> - Sat, 04 Aug 2012 23:26:49 -0700 - rev 152
Support assigning structs.
bb419abf0df4: Fix IndexExpression codegen issue.
David Anderson <dvander@alliedmods.net> - Sat, 04 Aug 2012 21:47:30 -0700 - rev 151
Fix IndexExpression codegen issue.
457110815c87: Treat IndexExpression's type field similar to a FieldExpression.
David Anderson <dvander@alliedmods.net> - Sat, 04 Aug 2012 21:23:39 -0700 - rev 150
Treat IndexExpression's type field similar to a FieldExpression.
b01ee7446984: Added incdec support for fields.
David Anderson <dvander@alliedmods.net> - Sat, 04 Aug 2012 21:06:47 -0700 - rev 149
Added incdec support for fields.
c0740249963c: All but interpreter support for getting and setting struct fields.
David Anderson <dvander@alliedmods.net> - Sat, 04 Aug 2012 20:12:20 -0700 - rev 148
All but interpreter support for getting and setting struct fields.
9c544823d090: Structure declaration support.
David Anderson <dvander@alliedmods.net> - Sat, 04 Aug 2012 19:33:06 -0700 - rev 147
Structure declaration support.
dc7d3b7a918c: Basic support for parsing and creating types from structure syntax.
David Anderson <dvander@alliedmods.net> - Sat, 04 Aug 2012 17:51:43 -0700 - rev 146
Basic support for parsing and creating types from structure syntax.
e9d804821c48: Introduced type semantics, completely replacing tag semantics.
David Anderson <dvander@alliedmods.net> - Wed, 01 Aug 2012 22:32:59 -0700 - rev 145
Introduced type semantics, completely replacing tag semantics.
a8735148dcf0: Support -x as a constant expression.
David Anderson <dvander@alliedmods.net> - Mon, 30 Jul 2012 22:30:38 -0700 - rev 144
Support -x as a constant expression.
393f1b8ac8c3: Initial support for booleans. Coercion does not work yet.
David Anderson <dvander@alliedmods.net> - Mon, 30 Jul 2012 22:24:57 -0700 - rev 143
Initial support for booleans. Coercion does not work yet.
a000bafece09: Implement re-tag unary expression.
David Anderson <dvander@alliedmods.net> - Mon, 30 Jul 2012 12:13:22 -0700 - rev 142
Implement re-tag unary expression.
d2516d66101a: Fix unary expressions having wrong precedence.
David Anderson <dvander@alliedmods.net> - Mon, 30 Jul 2012 12:13:08 -0700 - rev 141
Fix unary expressions having wrong precedence.
aae2a2562684: Implement getPrimitiveForTag.
David Anderson <dvander@alliedmods.net> - Mon, 30 Jul 2012 11:56:23 -0700 - rev 140
Implement getPrimitiveForTag.
3f23e4d55beb: Support [<no-expr>] in variable declarations (semantic support already exists).
David Anderson <dvander@alliedmods.net> - Mon, 30 Jul 2012 11:46:56 -0700 - rev 139
Support [<no-expr>] in variable declarations (semantic support already exists).
85196d4d4181: Fix << not pushing back the next character.
David Anderson <dvander@alliedmods.net> - Mon, 30 Jul 2012 11:38:32 -0700 - rev 138
Fix << not pushing back the next character.
be919b22085b: Allow unused functions to be semantically checked, but do not bytecode compile them.
David Anderson <dvander@alliedmods.net> - Mon, 30 Jul 2012 00:03:46 -0700 - rev 137
Allow unused functions to be semantically checked, but do not bytecode compile them.
7b32fc1bf153: Fix parser not initializing FunctionStatement::tag_.
David Anderson <dvander@alliedmods.net> - Sun, 29 Jul 2012 19:47:31 -0700 - rev 136
Fix parser not initializing FunctionStatement::tag_.