Ryan C. Gordon <icculus@icculus.org> [Fri, 12 Mar 2010 08:13:14 -0500] rev 894
Serious reworking of preprocessor macro replacement code.
Appears to handles the various oddities on might encounter in macro salsa, now.
Ryan C. Gordon <icculus@icculus.org> [Wed, 10 Mar 2010 19:23:19 -0500] rev 893
Updated .hgignore for Lemon header output.
Ryan C. Gordon <icculus@icculus.org> [Wed, 10 Mar 2010 13:51:31 -0500] rev 892
Added a --version command line to mojoshader-compiler.
Ryan C. Gordon <icculus@icculus.org> [Sun, 07 Mar 2010 08:08:35 -0500] rev 891
Added another unit test.
Ryan C. Gordon <icculus@icculus.org> [Sun, 07 Mar 2010 08:08:04 -0500] rev 890
Forgot to add this test before.
Ryan C. Gordon <icculus@icculus.org> [Thu, 04 Mar 2010 23:18:26 -0800] rev 889
List subsection in the condensed error output.
Ryan C. Gordon <icculus@icculus.org> [Thu, 04 Mar 2010 23:15:10 -0800] rev 888
Make failed tests more clear in the output.
Ryan C. Gordon <icculus@icculus.org> [Thu, 04 Mar 2010 23:08:13 -0800] rev 887
Added more unit tests.
Ryan C. Gordon <icculus@icculus.org> [Thu, 04 Mar 2010 23:00:10 -0800] rev 886
Finished preprocessor/errors/too-many-macro-args test.
Ryan C. Gordon <icculus@icculus.org> [Thu, 04 Mar 2010 22:59:48 -0800] rev 885
Implemented error output unit test harness.
Ryan C. Gordon <icculus@icculus.org> [Wed, 03 Mar 2010 09:13:26 -0800] rev 884
Merged some lemon diffs from sqlite's fossil repo: Visual Studio compile fixes.
Ryan C. Gordon <icculus@icculus.org> [Wed, 03 Mar 2010 08:46:17 -0800] rev 883
Fixed C++ compiler error.
Ryan C. Gordon <icculus@icculus.org> [Wed, 03 Mar 2010 08:24:13 -0800] rev 882
Did some Ryanification of Aras's Windows #include handling code.
Ryan C. Gordon <icculus@icculus.org> [Wed, 03 Mar 2010 08:06:44 -0800] rev 881
When processing identifiers in macro "calls", check both args and #defines.
Ryan C. Gordon <icculus@icculus.org> [Tue, 02 Mar 2010 23:12:16 -0800] rev 880
Added another failing test.
Ryan C. Gordon <icculus@icculus.org> [Tue, 02 Mar 2010 23:09:53 -0800] rev 879
Added indirect stringify test.
Ryan C. Gordon <icculus@icculus.org> [Tue, 02 Mar 2010 23:07:15 -0800] rev 878
Added another failing test.
Ryan C. Gordon <icculus@icculus.org> [Tue, 02 Mar 2010 22:41:42 -0800] rev 877
Added basic tests for __FILE__ and __LINE__.
Ryan C. Gordon <icculus@icculus.org> [Tue, 02 Mar 2010 22:41:09 -0800] rev 876
Changed where we spawn mojoshader-compiler from, for __FILE__ testing.
Ryan C. Gordon <icculus@icculus.org> [Tue, 02 Mar 2010 10:04:35 -0800] rev 875
Added support for __FILE__ and __LINE__ to the preprocessor.
Ryan C. Gordon <icculus@icculus.org> [Fri, 26 Feb 2010 02:37:01 -0500] rev 874
Added unit test for better coverage of bug I just fixed.
Ryan C. Gordon <icculus@icculus.org> [Fri, 26 Feb 2010 02:34:45 -0500] rev 873
Macro args in macro args need to be replaced inline.
So...
#define x THIS_IS_THE_DEFINE
#define b(x) x
#define z(x) b(x)
z(THIS_IS_THE_MACRO_ARG)
...should produce THIS_IS_THE_MACRO_ARG and not THIS_IS_THE_DEFINE.
Fixes unit-tests/preprocessor/output/nested-macro-args
Ryan C. Gordon <icculus@icculus.org> [Thu, 25 Feb 2010 11:02:26 -0500] rev 872
Added some unit tests for the preprocessor #line directive.
Aras Pranckevicius <aras@unity3d.com> [Thu, 25 Feb 2010 11:05:50 +0200] rev 871
filename in #line is optional
Aras Pranckevicius <aras@unity3d.com> [Thu, 25 Feb 2010 08:52:46 +0200] rev 870
make compile on MSVC, and fix stringmap_insert
Ryan C. Gordon <icculus@icculus.org> [Thu, 25 Feb 2010 02:26:36 -0500] rev 869
Added concat operator ("##") to the preprocessor.
There are still some failing corner cases, but it's probably good enough.
Ryan C. Gordon <icculus@icculus.org> [Thu, 25 Feb 2010 02:25:42 -0500] rev 868
Catch these tokens in the compiler, for badly-formed preprocessor source code.
Ryan C. Gordon <icculus@icculus.org> [Wed, 24 Feb 2010 21:23:58 -0500] rev 867
Don't reference built-in include functions if we preprocessed them out.
Ryan C. Gordon <icculus@icculus.org> [Wed, 24 Feb 2010 21:21:54 -0500] rev 866
Regenerated lexer with stringify operator.
Ryan C. Gordon <icculus@icculus.org> [Wed, 24 Feb 2010 21:20:37 -0500] rev 865
Added stringify operator ("#") to preprocessor.
Ryan C. Gordon <icculus@icculus.org> [Wed, 24 Feb 2010 14:00:25 -0500] rev 864
Check for "##" at the start and end of macro definitions.
Ryan C. Gordon <icculus@icculus.org> [Wed, 24 Feb 2010 13:18:50 -0500] rev 863
Added unit tests for preprocessor's macro concat operator.
These fail at the moment.
Ryan C. Gordon <icculus@icculus.org> [Wed, 24 Feb 2010 12:21:52 -0500] rev 862
Removed unused struct member.
Aras Pranckevicius <aras@unity3d.com> [Wed, 24 Feb 2010 18:40:48 +0200] rev 861
preprocessor open impl on MSVC
Ryan C. Gordon <icculus@icculus.org> [Wed, 24 Feb 2010 11:42:16 -0500] rev 860
Patched to compile.
Ryan C. Gordon <icculus@icculus.org> [Wed, 24 Feb 2010 03:20:50 -0500] rev 859
Implemented StringMap, for future use.
Ryan C. Gordon <icculus@icculus.org> [Wed, 24 Feb 2010 01:21:21 -0500] rev 858
Formalized the compiler's string cache into a real API.
Moved the compiler and preprocessor to use it, and dumped their separate
implementations of the same thing.
Ryan C. Gordon <icculus@icculus.org> [Tue, 23 Feb 2010 17:38:00 -0500] rev 857
Removed the vector/matrix datatype parser tokens.
MSDN docs suggest that there aren't formal grammar tokens for these, but
rather the compiler treats these as implicit typedefs that appear before
the first line of source code. We now treat them as such, which makes
everything a little less bulky.
Ryan C. Gordon <icculus@icculus.org> [Tue, 23 Feb 2010 17:20:58 -0500] rev 856
Moved print_ast() elsewhere.
Ryan C. Gordon <icculus@icculus.org> [Tue, 23 Feb 2010 12:55:52 -0500] rev 855
Reverse all the linked lists that we generate backwards in the parser.
Ryan C. Gordon <icculus@icculus.org> [Tue, 23 Feb 2010 11:34:36 -0500] rev 854
Filled in the rest of the missing print_ast() cases.
Ryan C. Gordon <icculus@icculus.org> [Mon, 22 Feb 2010 12:43:55 -0500] rev 853
Bunch More Work on print_ast().
Ryan C. Gordon <icculus@icculus.org> [Mon, 22 Feb 2010 03:07:29 -0500] rev 852
Temporary (and incomplete!) debug code to print the AST.
Ryan C. Gordon <icculus@icculus.org> [Mon, 22 Feb 2010 02:23:32 -0500] rev 851
Cleaned up compiler framework a little.
Ryan C. Gordon <icculus@icculus.org> [Mon, 22 Feb 2010 02:22:24 -0500] rev 850
Fixed pop_scope().
Ryan C. Gordon <icculus@icculus.org> [Mon, 22 Feb 2010 02:22:06 -0500] rev 849
Removed some debug code.
Ryan C. Gordon <icculus@icculus.org> [Mon, 22 Feb 2010 01:58:37 -0500] rev 848
Make the error code blocks into fail() calls.
I think I want this to be more robust, still, though.
Ryan C. Gordon <icculus@icculus.org> [Mon, 22 Feb 2010 01:57:53 -0500] rev 847
Added a FIXME.
Ryan C. Gordon <icculus@icculus.org> [Mon, 22 Feb 2010 01:57:37 -0500] rev 846
Added better (?) USERTYPE management.
Now handles scoping of typedefs, etc.
Ryan C. Gordon <icculus@icculus.org> [Mon, 22 Feb 2010 01:56:12 -0500] rev 845
Removed incorrect assertion.
Ryan C. Gordon <icculus@icculus.org> [Sun, 21 Feb 2010 19:37:38 -0500] rev 844
Make AST nodes a little more generic, add source position info to them.
Ryan C. Gordon <icculus@icculus.org> [Sun, 21 Feb 2010 14:54:54 -0500] rev 843
Keep track of token location when parsing.
Ryan C. Gordon <icculus@icculus.org> [Sun, 21 Feb 2010 01:02:34 -0500] rev 842
A little work on error handling in the compiler.
Ryan C. Gordon <icculus@icculus.org> [Sat, 20 Feb 2010 23:41:21 -0500] rev 841
Added a FIXME.
Ryan C. Gordon <icculus@icculus.org> [Sat, 20 Feb 2010 23:41:12 -0500] rev 840
Report bad characters in the assembler.
Ryan C. Gordon <icculus@icculus.org> [Sat, 20 Feb 2010 21:50:48 -0500] rev 839
Clean up context at the end.
Ryan C. Gordon <icculus@icculus.org> [Sat, 20 Feb 2010 20:31:00 -0500] rev 838
Removed SEMANTIC token...we can do this with IDENTIFIER.
The less the parser has to do, the better!
Ryan C. Gordon <icculus@icculus.org> [Sat, 20 Feb 2010 00:27:28 -0500] rev 837
Uncommented some grammar bits that got masked out in the calculator experiment.
Ryan C. Gordon <icculus@icculus.org> [Fri, 19 Feb 2010 02:28:44 -0500] rev 836
Bunch More Work on HLSL parser.
This is not nearly ready for primetime. I doubt it does much more than
compile (and maybe only on my machine).
This reworks/improves/cleans up the grammar quite a bit, and fills in much of
the C code required to generate an Abstract Syntax Tree.
Nothing is done with this tree yet, including freeing it.
Ryan C. Gordon <icculus@icculus.org> [Fri, 19 Feb 2010 02:25:51 -0500] rev 835
Added boilerplate comment to start of file.
Ryan C. Gordon <icculus@icculus.org> [Wed, 17 Feb 2010 21:07:40 -0500] rev 834
Updated lempar.c to match updated lemon.c
Ryan C. Gordon <icculus@icculus.org> [Wed, 17 Feb 2010 15:35:15 -0500] rev 833
Lemon fix: don't let grammar define the same nonterminal %type more than once.
Ryan C. Gordon <icculus@icculus.org> [Wed, 17 Feb 2010 15:34:43 -0500] rev 832
Lemon fix: incorrect printf format strings.
Ryan C. Gordon <icculus@icculus.org> [Wed, 17 Feb 2010 01:01:40 -0500] rev 831
Updated lemon to the latest in my fossil repo.
My assumption is that many of my __MOJOSHADER__ blocks will be formal parts of
upstream Lemon, so I've merged over for now, removing the #ifdefs where
appropriate.
I'm keeping %expect support for now, even though drh didn't like the idea,
since I can't wrap my stupid head around the parser conflict resolution
process yet.
Ryan C. Gordon <icculus@icculus.org> [Sat, 13 Feb 2010 01:04:55 -0500] rev 830
Lemon now writes errors to stderr instead of stdout, and uses full output.
The previous way truncated the filename, so my editor couldn't jump to the
problem line in the source code.
Ryan C. Gordon <icculus@icculus.org> [Fri, 12 Feb 2010 13:40:25 -0500] rev 829
Lemon now deletes its output on failure.
This is to fix the build system. Previously, a Makefile would abort when
lemon fails, but on the next run it would see a newer (incorrect/incomplete)
output file, and assume it succeeded previously, with disastrous effects for
later steps in the build process.
Ryan C. Gordon <icculus@icculus.org> [Tue, 09 Feb 2010 03:28:04 -0500] rev 828
Merged calculator-experiment back into default branch.
Ryan C. Gordon <icculus@icculus.org> [Tue, 09 Feb 2010 02:55:38 -0500] rev 827
Moved the calculator experiment work back into the compiler.
At least we know the expression parser works! :)
Lots of other bits of new infrastructure in there, too.
Ryan C. Gordon <icculus@icculus.org> [Tue, 09 Feb 2010 01:52:08 -0500] rev 826
Don't pass the TokenData back out of the lemon code.
Ryan C. Gordon <icculus@icculus.org> [Tue, 09 Feb 2010 00:23:09 -0500] rev 825
Removed some Context fields we don't really need.
Ryan C. Gordon <icculus@icculus.org> [Tue, 09 Feb 2010 00:08:12 -0500] rev 824
"identifier" shouldn't be a non-terminal.
Ryan C. Gordon <icculus@icculus.org> [Mon, 08 Feb 2010 23:51:32 -0500] rev 823
Cleaned up TokenData FIXMEs, and added string cache.
Ryan C. Gordon <icculus@icculus.org> [Mon, 08 Feb 2010 04:42:51 -0500] rev 822
Free the parse tree once we're done with it.
Ryan C. Gordon <icculus@icculus.org> [Mon, 08 Feb 2010 04:29:31 -0500] rev 821
Actually run the calculator, walking the parse tree.
Ryan C. Gordon <icculus@icculus.org> [Mon, 08 Feb 2010 04:29:05 -0500] rev 820
Stop parsing if the parser panics.
Ryan C. Gordon <icculus@icculus.org> [Mon, 08 Feb 2010 04:02:01 -0500] rev 819
Closing the "trunk" branch.
(it's a relic of the conversion from Subversion to Mercurial).
Ryan C. Gordon <icculus@icculus.org> [Mon, 08 Feb 2010 03:59:18 -0500] rev 818
Ignore blank lines.
Ryan C. Gordon <icculus@icculus.org> [Mon, 08 Feb 2010 03:59:12 -0500] rev 817
Removed debug output.
Ryan C. Gordon <icculus@icculus.org> [Mon, 08 Feb 2010 03:59:00 -0500] rev 816
Fixed literal data getting through the parser in one piece.
Ryan C. Gordon <icculus@icculus.org> [Mon, 08 Feb 2010 03:33:47 -0500] rev 815
Initial dumping of parse tree once parsing finishes.
Other minor tweaks and cleanups, too.
Ryan C. Gordon <icculus@icculus.org> [Mon, 08 Feb 2010 03:33:12 -0500] rev 814
Allow "q" to quit calculator, too.
Ryan C. Gordon <icculus@icculus.org> [Mon, 08 Feb 2010 03:30:48 -0500] rev 813
Make #include callbacks optional.
Now fails at runtime if we hit an #include without callbacks defined. If
we never need the callbacks, it's silly to assert they must exist.
Ryan C. Gordon <icculus@icculus.org> [Mon, 08 Feb 2010 03:04:29 -0500] rev 812
Cleaned up operator enumeration, put it into ranges, fixed data ops.
Ryan C. Gordon <icculus@icculus.org> [Mon, 08 Feb 2010 02:42:12 -0500] rev 811
Start of experiment with a basic calculator.
This is a throwaway so I can debug some of the HLSL parsing code, and get a
better idea of what I want to do there. This will eventually merge back
into the default branch with the right bits going into the compiler code.
Ryan C. Gordon <icculus@icculus.org> [Mon, 08 Feb 2010 02:38:19 -0500] rev 810
Don't suppress #line directives in lemon output.
Ryan C. Gordon <icculus@icculus.org> [Sun, 07 Feb 2010 22:14:04 -0500] rev 809
Forgot to wrap this in a #if __MOJOSHADER__.
Ryan C. Gordon <icculus@icculus.org> [Wed, 30 Dec 2009 14:59:16 -0500] rev 808
Allow compiler to strip disabled glsl120 and nvX profiles as dead code.
Ryan C. Gordon <icculus@icculus.org> [Wed, 30 Dec 2009 14:48:02 -0500] rev 807
Fixed compiler warnings on 64-bit Mac OS X.
Ryan C. Gordon <icculus@icculus.org> [Wed, 30 Dec 2009 14:42:27 -0500] rev 806
Added a FIXME.
Ryan C. Gordon <icculus@icculus.org> [Wed, 30 Dec 2009 03:34:25 -0500] rev 805
Minor Ryanification.
Ryan C. Gordon <icculus@icculus.org> [Wed, 30 Dec 2009 03:32:54 -0500] rev 804
Emit vs_1_1 properly (thanks, Aras!).
Aras Pranckevicius <aras@unity3d.com> [Tue, 29 Dec 2009 22:36:27 +0200] rev 803
vs_1_1 also has decls on D3D9
Aras Pranckevicius <aras@unity3d.com> [Tue, 29 Dec 2009 22:35:51 +0200] rev 802
when profile is compiled out, dont crash later
Aras Pranckevicius <aras@unity3d.com> [Tue, 29 Dec 2009 22:11:25 +0200] rev 801
asm needs bytecode profile
Aras Pranckevicius <aras@unity3d.com> [Tue, 29 Dec 2009 17:29:32 +0200] rev 800
fix passthrough/bytecode define
Ryan C. Gordon <icculus@icculus.org> [Sun, 15 Nov 2009 14:03:46 -0500] rev 799
Regenerated mojoshader_lexer.c from mojoshader_lexer.re.
Ryan C. Gordon <icculus@icculus.org> [Sun, 15 Nov 2009 14:02:18 -0500] rev 798
Bunch of small tweaks to make this compile as C++ code without errors/warnings.
Ryan C. Gordon <icculus@icculus.org> [Sun, 15 Nov 2009 14:01:41 -0500] rev 797
GLSL Uniform locations are signed ints.
Ryan C. Gordon <icculus@icculus.org> [Fri, 28 Aug 2009 01:02:03 -0400] rev 796
Keep it simple.
Ryan C. Gordon <icculus@icculus.org> [Wed, 26 Aug 2009 00:32:04 -0400] rev 795
Pacify compiler warning.
Ryan C. Gordon <icculus@icculus.org> [Wed, 26 Aug 2009 00:17:25 -0400] rev 794
Fixed compiler warning about Lemon allocator function signature.
...probably fixed 64-bit builds, too...
Ryan C. Gordon <icculus@icculus.org> [Wed, 26 Aug 2009 00:11:57 -0400] rev 793
Fixed a compiler warning, for now.
Ryan C. Gordon <icculus@icculus.org> [Wed, 26 Aug 2009 00:02:31 -0400] rev 792
Forgot to add DEPTH to the list of valid semantics.
Ryan C. Gordon <icculus@icculus.org> [Tue, 25 Aug 2009 23:48:51 -0400] rev 791
Fixed compiler warning.
Ryan C. Gordon <icculus@icculus.org> [Tue, 25 Aug 2009 23:47:11 -0400] rev 790
Initializer blocks can nest, like "float4 x[] = { {a,b,c,d}, {a,b,c,d} };"
Ryan C. Gordon <icculus@icculus.org> [Tue, 25 Aug 2009 23:44:04 -0400] rev 789
Variable declarations can have empty array bounds, like "float x[] = {a,b,c};"
Ryan C. Gordon <icculus@icculus.org> [Tue, 25 Aug 2009 23:40:10 -0400] rev 788
Allow vector initializers, like "float4 x = {a,b,c,d};"
Ryan C. Gordon <icculus@icculus.org> [Tue, 25 Aug 2009 23:20:02 -0400] rev 787
Added statement block attributes to the HLSL grammar.
These are supposedly only available to Shader Model 4 and Xbox 360 targets.
Ryan C. Gordon <icculus@icculus.org> [Tue, 25 Aug 2009 23:17:38 -0400] rev 786
Modified Lemon to accept a specific amount of conflicts.
This works like bison's %expect declaration.
Ryan C. Gordon <icculus@icculus.org> [Sun, 23 Aug 2009 01:48:38 -0400] rev 785
Added totally unhelpful syntax error output.
Ryan C. Gordon <icculus@icculus.org> [Sun, 23 Aug 2009 01:43:14 -0400] rev 784
Removed some debug code.
Ryan C. Gordon <icculus@icculus.org> [Sun, 23 Aug 2009 01:42:17 -0400] rev 783
HLSL for loops can have variable declarations: "for (int x=0; x<10; x++) {}"
Ryan C. Gordon <icculus@icculus.org> [Sun, 23 Aug 2009 01:32:21 -0400] rev 782
HLSL array declarations can be expressions, like "float4 x[(1 + 1) / 2];" ...
Ryan C. Gordon <icculus@icculus.org> [Sun, 23 Aug 2009 01:28:43 -0400] rev 781
HLSL struct fields can have semantics.
Ryan C. Gordon <icculus@icculus.org> [Sun, 23 Aug 2009 01:25:43 -0400] rev 780
Apparently "inout" and "in out" are both legal for HLSL function parameters.
Ryan C. Gordon <icculus@icculus.org> [Sun, 23 Aug 2009 01:21:43 -0400] rev 779
Fixed parsing of HLSL functions that return void.
Ryan C. Gordon <icculus@icculus.org> [Sun, 23 Aug 2009 01:04:49 -0400] rev 778
Added some structure for user types (struct at the moment).
Ryan C. Gordon <icculus@icculus.org> [Sat, 22 Aug 2009 19:46:49 -0400] rev 777
Fixed HLSL parsing of structs with array fields.
Ryan C. Gordon <icculus@icculus.org> [Sun, 16 Aug 2009 17:00:32 -0400] rev 776
Move glsl "#version" pragma to the preflight section, so it's always first.
Ryan C. Gordon <icculus@icculus.org> [Sat, 15 Aug 2009 03:44:36 -0400] rev 775
Only enable/disable vertex arrays when forced to.