src/compiler/preprocessor


Log

Author Commit Date CI Message
Zhenyao Mo d526f989 2014-05-13T14:51:19 Fix code style violation in compiler/preprocessor BUG=angle:650 TEST=no behavior change Change-Id: Ib52f15f6471fc7897b66d11baee11216cf08158a Reviewed-on: https://chromium-review.googlesource.com/199591 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Zhenyao Mo <zmo@chromium.org>
Jamie Madill 5508f39d 2014-02-20T13:31:36 Fix breaking the build with missing GetGlobalMaxTokenSize. Because the preprocessor is used independently from the compiler, we need a way to track max token size when we don't have access to the parse context with the current spec. BUG=angle:550 Change-Id: Idf5035ec2c001ee75f264151ab3c4e92f3cd44d7 Reviewed-on: https://chromium-review.googlesource.com/187140 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 88f6e946 2014-02-19T10:27:53 Proper support for token max size in WebGL+ES3. WebGL specifies a maximum token size of 256 characters, while ES3 specifies 1024 characters. We can determine the proper max size to support from the spec. BUG=angle:550 Change-Id: I6aeabe8af3b6184a27b456248ce2f84f361b76e4 Reviewed-on: https://chromium-review.googlesource.com/186973 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill c9f140d8 2014-02-18T15:27:21 Add preprocess bison files to the gyp files. We had accidentally left out the y and l files from our generation scripts, causing us to miss several instances of updated enum names. BUG=angle:550 Change-Id: I8790742fbaab5435e4c0db4f61c3e8194a231550 Reviewed-on: https://chromium-review.googlesource.com/186972 Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill a738f085 2013-11-01T17:45:04 Fix build on QNX. InfoSink.h needs stdlib.h for abs(int) and free() in the global namespace. ExpressionParser needs malloc.h, because bison needs malloc and free in the global namespace, but "#include <cassert>" will put it only in the std:: namespace on QNX. BUG=500 R=geofflang@chromium.org, jmadill@chromium.org, shannonwoods@chromium.org, zmo@chromium.org Review URL: https://codereview.appspot.com/19330044 Change-Id: Ifa30a8ba5eced1156123416d4a24b490620721af Reviewed-on: https://chromium-review.googlesource.com/178993 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill d7f2135f 2013-10-30T17:53:15 Fix build on QNX. InfoSink.h needs stdlib.h for abs(int) and free() in the global namespace. ExpressionParser needs malloc.h, because bison needs malloc and free in the global namespace, but "#include <cassert>" will put it only in the std:: namespace on QNX. BUG=500 R=geofflang@chromium.org, shannonwoods@chromium.org Review URL: https://codereview.appspot.com/19330044 Conflicts: src/compiler/translator/InfoSink.h Change-Id: Ie480d5c293d099f21dafc8c1e7997c0b4cda7207 Reviewed-on: https://chromium-review.googlesource.com/178998 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Shannon Woods 7f2d7945 2013-11-19T15:07:58 Manual merge of Ehsan Akhgari's patch to rename Diagnostics enums to avoid collision with Windows.h (See https://chromium-review.googlesource.com/#/c/177181/3) Change-Id: I2978d06ec96789b3ee1696b65a84c2a9f31f7ba4
Geoff Lang 7c697201 2013-10-07T17:18:14 Deleted manually maintained visual studio projects and replaced them with gyp generated ones.
Zhenyao Mo f1d723c6 2013-09-23T14:57:07 Clamp numeric overflow rather than failing with an error BUG=249086 ANGLEBUG=468 TEST= R=alokp@chromium.org, kbr@chromium.org Review URL: https://codereview.appspot.com/13195043
Jamie Madill ba615196 2013-09-24T14:07:39 Normalize line endings of tracked files in the repository. TRAC #23896 Signed-off-by: Shannon Woods
Shannon Woods b5ce077e 2013-06-12T14:05:56 Add 64bit safety patch step to generate_parser.sh scripts. TRAC #23274 Authored-by: Shannon Woods Signed-off-by: Jamie Madill Signed-off-by: Nicolas Capens
Shannon Woods eb936d0d 2013-06-12T14:05:38 Adds patch files for 64 bit safety fixes TRAC #23274 Authored-by: Shannon Woods Signed-off-by: Jamie Madill Signed-off-by: Nicolas Capens
Shannon Woods 81e93083 2013-06-12T14:05:22 Makes generate_parser.sh executable TRAC #23274 Authored-by: Shannon Woods Signed-off-by: Jamie Madill Signed-off-by: Nicolas Capens
shannonwoods@chromium.org 2a5436ff 2013-05-30T00:21:41 Added preprocessor support for parsing the float suffix. TRAC #23185 Signed-off-by: Geoff Lang Signed-off-by: Shannon Woods Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2413 736b8ea6-26fd-11df-bfd4-992fa37f6226
shannonwoods@chromium.org 3f83e29c 2013-05-30T00:21:34 Added preprocessor support for parsing the unsigned integer suffix. TRAC #23185 Signed-off-by: Geoff Lang Signed-off-by: Shannon Woods Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2412 736b8ea6-26fd-11df-bfd4-992fa37f6226
shannonwoods@chromium.org b0757168 2013-05-30T00:21:27 Restore 64-bit support of the preprocessor tokenizer. TRAC #23185 Signed-off-by: Geoff Lang Signed-off-by: Shannon Woods Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2411 736b8ea6-26fd-11df-bfd4-992fa37f6226
shannonwoods@chromium.org c8100b85 2013-05-30T00:20:34 Add support for unsigned integer literals in the shading language. TRAC #23080 Signed-off-by: Nicolas Capens Signed-off-by: Shannon Woods Author: Jamie Madill git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2405 736b8ea6-26fd-11df-bfd4-992fa37f6226
shannonwoods@chromium.org 8ddaf5c0 2013-05-30T00:13:08 Increase the maximum token length in the preprocessor to be 1024, to comply with the GLSL ES 3 specification. TRAC #23077 Signed-off-by: Shannon Woods Signed-off-by: Geoff Lang Author: Jamie Madill git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2349 736b8ea6-26fd-11df-bfd4-992fa37f6226
shannonwoods@chromium.org 4b8a3115 2013-05-30T00:13:01 Regenerate the preprocessor source files with the new versions of the compiler tools. Will have to be resolved with 64-bit compatible bison in the future. TRAC #23077 Signed-off-by: Shannon Woods Signed-off-by: Geoff Lang Author: Jamie Madill git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2348 736b8ea6-26fd-11df-bfd4-992fa37f6226
shannon.woods%transgaming.com@gtempaccount.com 0bbed38f 2013-04-13T03:38:07 Accept shader version 300 on ES3 contexts. TRAC #22712 Signed-off-by: Jamie Madill Signed-off-by: Shannon Woods Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2121 736b8ea6-26fd-11df-bfd4-992fa37f6226
shannon.woods%transgaming.com@gtempaccount.com bcde56f7 2013-04-13T03:32:12 Added support for line continuations. TRAC #22713 Signed-off-by: Geoff Lang Signed-off-by: Shannon Woods Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2086 736b8ea6-26fd-11df-bfd4-992fa37f6226
shannon.woods@transgaming.com 8e02e356 2013-02-28T23:20:08 Fix ANGLE patching/building issues. 1) Remove an empty file: this causes patch apply failures when updating WebKit side ANGLE. 2) Fix a 64-to-32 conversion issue. 3) Append a change to Tokenizer.l that's left out in a previous CL. (cpp is already updated). Review URL: https://codereview.appspot.com/7378051 git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1965 736b8ea6-26fd-11df-bfd4-992fa37f6226
shannon.woods@transgaming.com eb68fd0e 2013-02-28T23:20:01 This pulls in mvujovic's build fix in WebKit ANGLE. Original patch: http://trac.webkit.org/changeset/139665 Review URL: https://codereview.appspot.com/7392044 git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1964 736b8ea6-26fd-11df-bfd4-992fa37f6226
shannon.woods@transgaming.com d64b3dab 2013-02-28T23:19:26 Fixed 64-bit integer truncation issues in shader translator. This is an incompatible API change, but one which is necessary in order to improve correctness of the code. The API version in ShaderLang.h is updated and, unfortunately, the define renamed to something less ambiguous due to conflicts on some Android buildbots. Temporary patches in Chromium and WebKit will be landed separately to support this upgrade. BUG=403,404,405,406,407,408,409 Review URL: https://codereview.appspot.com/7300058 Conflicts: include/GLSLANG/ShaderLang.h git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1960 736b8ea6-26fd-11df-bfd4-992fa37f6226
shannon.woods@transgaming.com e36fddfc 2013-01-25T21:57:50 Attempt different fix for unknown #pragma on Linux. BUG=none TEST=compiled on Linux and Mac OS Review URL: https://codereview.appspot.com/7133076 git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1800 736b8ea6-26fd-11df-bfd4-992fa37f6226
shannon.woods@transgaming.com 2f8524d3 2013-01-25T21:57:17 Fixed compiler warning on Linux resulting in build failures. BUG=none TEST=compiled on Linux Review URL: https://codereview.appspot.com/7201056 git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1797 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com b3077d08 2013-01-11T04:12:09 Upstream various build fixes from WebKit to ANGLE to make updating ANGLE in WebKit easier. a) http://trac.webkit.org/changeset/127747 b) http://trac.webkit.org/changeset/128539 c) http://trac.webkit.org/changeset/122870 - Specifically, items #3 and #4 in this changeset's commit message. Review URL: https://codereview.appspot.com/7040045 Author: maxvujovic@gmail.com ------ Upodate preprocessor.vcxproj to reflect changes in r1640. Review URL: https://codereview.appspot.com/7061044 git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1703 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com a16a55f7 2012-12-20T20:51:54 Add explicit std:: namespace to code from <cXYZ> includes. Some platforms seem to implicitly include the <XYZ.h> headers which also add some types and functions (like strlen, size_t,...) into the global namespace. On other platforms though, this can result in compile errors, which is noticeable in WebKit on e.g. QNX. See also: https://bugs.webkit.org/show_bug.cgi?id=95468 https://codereview.appspot.com/6843083/ Contributed by Milian Wolff, Klaralvdavens Datakonsult AB. git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1565 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com b401a92b 2012-10-26T18:58:24 Move the new preprocessor out of the 'new' directory. TRAC #21966 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@1326 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 3be1d571 2012-10-26T18:58:16 Removed the old preprocessor source, interface and license. TRAC #21966 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@1325 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com c60c15c0 2012-10-17T18:15:14 Add filter files for VS2010 Solution browser Trac #21647 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1300 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 2187b4a3 2012-10-17T18:12:07 Delete old .vcproj files that were replaced by .vcxproj files Trac #21647 Signed-off-by: Shannon Woods Signed-off-by: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@1298 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com e9b408bf 2012-10-17T18:11:40 Add auto converted .vxcproj files for VC++ 2010 Express Trac #21647 Signed-off-by: Shannon Woods Signed-off-by: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@1295 736b8ea6-26fd-11df-bfd4-992fa37f6226
maxvujovic@gmail.com 433f4aaa 2012-07-18T17:29:52 Fix always true condition in assert in MacroExpander.cpp. Issue: 349 Review URL: https://codereview.appspot.com/6420046/ git-svn-id: https://angleproject.googlecode.com/svn/trunk@1228 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 6c0c2d87 2012-07-18T15:49:56 Do not call MacroExpander::popMacro() from MacroExpander::~MacroExpander(). MacroExpander::popMacro() assumes that the macro being popped has been fully parsed. This may not be true for MacroExpander destructor which may get called anytime the compiler decides to abort the compilation process. This patch just deletes the macro-contexts pushed in the stack without validating the parse state of current macro. BUG=348 Review URL: https://codereview.appspot.com/6415043 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1227 736b8ea6-26fd-11df-bfd4-992fa37f6226
maxvujovic@gmail.com e640ef8e 2012-07-13T18:42:40 Make the new preprocessor backwards compatible with Bison 2.3 Review URL: http://codereview.appspot.com/6356098/ git-svn-id: https://angleproject.googlecode.com/svn/trunk@1224 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org fc0543f4 2012-07-11T20:31:02 This patch reverts r1203, but in slightly different way. It seems there is a problem with the config of memory bots. The usage of std::locale in ANGLE is fine. Review URL: https://codereview.appspot.com/6392052 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1205 736b8ea6-26fd-11df-bfd4-992fa37f6226
apatrick@chromium.org 39a94266 2012-07-10T23:30:30 Reconstructed preprocessor.vcproj from libGLESv2.vcproj. There was something different about the project properties in release builds that caused std::vector to have different member variable offsets, leading to the samples crashing in Release builds. Removed stuff that was specific to libGLESv2.vcproj. Project now builds in all configs including x64. Review URL: https://codereview.appspot.com/6374050 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1204 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 828ec8fa 2012-07-10T17:50:12 Builds for chrome memroy bots (windows only) do not link due to the usage of std::locale, the reason for which is still unknown. This patch avoids the usage of std::locale, while still enforcing "C" locale and checking for overflow. Review URL: https://codereview.appspot.com/6392046 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1203 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org c0a1eb3c 2012-07-09T18:27:04 Fixed compile error on android. It was complaining about tolower. This patch removes the usage of tolower, and adds tests for checking both versions of hexadecimal integers - 0x and 0X. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1195 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org c022c3af 2012-07-09T15:56:42 WebGL spec specifies maximum length of all types of tokens - not just identifier tokens. And it also means preprocessing-tokens, not compiler tokens. Note that this implies that non-compliant tokens even inside excluded #if blocks will trigger error. TODO: This behavior should be implemented as a preprocessor option, so that a GLES2 compiler can choose to disable it. Review URL: https://codereview.appspot.com/6355066 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1193 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org d35efdf5 2012-07-03T19:33:10 Restricted the length of identifiers (including #define directive) to 256, as required by webgl spec. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1186 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 390209ae 2012-07-03T16:12:48 Lowered the severity of EOF_IN_DIRECTIVE from an ERROR to WARNING. There are just too many shaders on internet (including webgl conformance test) that do not have a newline at the end of directives, especially #endif. Review URL: https://codereview.appspot.com/6352059 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1185 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org d0d9f87a 2012-07-03T16:06:40 Make sure that #version occurs before anything else, except for comments and white space. Review URL: https://codereview.appspot.com/6348056 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1184 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 2e81891c 2012-06-29T21:26:03 Handled the case where int and float are of correct format, but large. The GLSL spec is not very clear on how integers should be interpreted for expressions. C99 says the expression is of type intmax_t. I am parsing all integers as int except those in expressions, which are being parsed as unsigned int. Review URL: https://codereview.appspot.com/6351051 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1179 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 6b495719 2012-06-29T00:06:58 Moved error-counting to Diagnostics so that errors generated during preprocessing is included in the count. Enabled logging of preprocessor diagnostics into info-log. Review URL: https://codereview.appspot.com/6354047 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1177 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org f115592d 2012-06-28T23:34:30 Used std::ostringstream instead of std::stringstream wherever applicable. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1176 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 5b6a68e0 2012-06-28T20:29:13 Replaced pp::Token::value with pp::Token::text. The term value will be used for a function which will convert text to integer/float constant. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1175 736b8ea6-26fd-11df-bfd4-992fa37f6226
maxvujovic@gmail.com c6b3b3c7 2012-06-27T22:49:39 Fix the compiler warnings on WebKit ports when updating ANGLE in WebKit. Remove the varargs used for extra info formatting in the error() and warning() methods of ParseHelper. Use std::stringstream for formatting instead. Review URL: http://codereview.appspot.com/6310067/ git-svn-id: https://angleproject.googlecode.com/svn/trunk@1170 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 432d6fc4 2012-06-27T22:13:21 Introduced preprocessing token types. This fixes a bug where invalid tokens inside excluded conditional block may report diagnostics. Now we let the invalid tokens to bubble through the preprocessor so that they have chance to be skipped. Review URL: https://codereview.appspot.com/6356045 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1169 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org d39ec4c1 2012-06-26T04:37:55 Implemented conditional processing. Review URL: https://codereview.appspot.com/6333046 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1168 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org e6357c0e 2012-06-19T20:24:23 Added x64 config to preprocessor.vcproj. Review URL: https://codereview.appspot.com/6295105 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1161 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org b197c885 2012-06-19T18:53:39 Fixed build for manually-maintained vcproj files. Review URL: https://codereview.appspot.com/6297103 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1159 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 73bc298e 2012-06-19T18:48:05 Hooked up the new preprocessor behind a compile-time flag ANGLE_USE_NEW_PREPROCESSOR. Review URL: https://codereview.appspot.com/6304095 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1158 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org f3cdb460 2012-06-19T18:39:48 Added support for pre-defined macros. Review URL: https://codereview.appspot.com/6301084 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1157 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org a19572ce 2012-06-15T16:30:08 Fixed compile error on linux. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1151 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 8b851c6d 2012-06-15T16:25:11 Preparation of hooking up the new preprocessor. - Added custom Diagnostics class. Routed all info-log messages via this new class. - Added custom DirectiveHandler class. Moved directive-handling code to this class and routed the old path. - Deleted lexer_glue because it is not needed anymore. The new preprocessor is almost ready! - Killed a bunch of dead code related to PragmaTable. Review URL: https://codereview.appspot.com/6308074 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1150 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 46aa13d8 2012-06-15T15:40:27 Implemented line directive. Review URL: https://codereview.appspot.com/6307083 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1149 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 7fc38ddd 2012-06-14T18:23:23 Implemented macro expansion. Review URL: https://codereview.appspot.com/6303052 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1148 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 69ab2993 2012-06-13T15:42:30 Remove an unused variable from readCPPline() This causes problems with -Wunused-but-set-variable in GCC 4.6. Review: http://codereview.appspot.com/6296o59/ Author: Steve Block git-svn-id: https://angleproject.googlecode.com/svn/trunk@1147 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 19d7aa60 2012-05-31T17:34:05 Fixed the location of EOF token. Added three new location tests for EOF. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1125 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 51b96855 2012-05-30T20:25:05 Fixed compile errors on linux. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1099 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org e5dfefad 2012-05-24T19:29:37 Renamed UNEXPECTED_TOKEN_IN_DIRECTIVE to UNEXPECTED_TOKEN. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1096 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 7c884540 2012-05-24T19:13:03 Implemented #extension and #version directives. Review URL: https://codereview.appspot.com/6242045 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1095 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 36124de8 2012-05-24T02:17:43 Implemented #error and #pragma directives. Added new tests and updated old ones for the new preprocessor API. Review URL: https://codereview.appspot.com/6213066 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1094 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 07d921de 2012-05-22T20:22:08 Token::value now contains text for all types of tokens - not just CONST_INT, CONST_FLOAT, and IDENTIFIER. This makes it easier to report diagnostics and various preprocessor directives. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1093 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 98d04ec8 2012-05-21T22:47:20 Implemented #define and #undef directives. Review URL: https://codereview.appspot.com/6215072 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1092 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 0eb51ac3 2012-05-21T21:43:57 Deleted old unused files. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1091 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 964b7194 2012-05-17T21:12:27 Fixed compile error in lexer_glue.cpp. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1089 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 99b5c0c9 2012-05-17T20:44:52 Fixed compile errors and warnings on linux. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1088 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 2c958eef 2012-05-17T20:35:42 Moved error-handling to a separate class - Diagnostics. We were earlier returning errors as tokens which did not work very well when error occured while parsing a preprocessor directive. Now all returned tokens are valid. Errors are reported via an abstract Diagnostics interface. Updated unit-tests with the new scheme. Review URL: https://codereview.appspot.com/6203089 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1087 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 04d7d22b 2012-05-16T19:24:07 Reafactored Lexer class to allow chaining. The full chain when parsing #if directive looks like this: Preprocessor -> MacroExpander -> DirectiveHandler -> MacroExpander -> DefinedFilter -> Tokenizer. This chain dynamically changes depending on the current context. Also added an incomplete implementation of #if handling and ExpressionParser to illustrate how this design is supposed to work. Review URL: https://codereview.appspot.com/6203060 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1084 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com ac5d7f39 2012-05-09T15:37:04 Memory associated with allTokens is never freed due to early return in "case -1" in CPPpragma(yystypepp*) in cpp.c ISSUE=328 Signed-off-by: Daniel Koch Author: David Kilzer git-svn-id: https://angleproject.googlecode.com/svn/trunk@1072 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 30a487c7 2012-05-02T17:30:46 Minor refactoring for Input class. Chnaged a raw array to std::vector. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1068 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 98eec912 2012-05-01T10:04:08 Using yy_scan_string, which flushes the old buffer does not work. GLSL requires that each input string is concatenated, but yy_scan_string treats each string individually. Added a custom YY_INPUT which maintains the continuity between each string. Review URL: https://codereview.appspot.com/6130045 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1066 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org a11a6ab8 2012-04-27T10:00:38 Changes to handle comments properly and associated tests. Review URL: https://codereview.appspot.com/6111059 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1059 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 128d9199 2012-04-26T22:39:21 Added tests for token location. Review URL: https://codereview.appspot.com/6118062 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1058 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 79fb1019 2012-04-26T21:07:39 Ugly hack to fix compile error on windows. VC++ does not support C99 and hence snprintf. BUG=308 Review URL: https://codereview.appspot.com/6120055 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1057 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org ef1eaa04 2012-04-26T18:02:42 Changed Token::Location::string to Token::Location::file to keep it consistent with __FILE__ inbult macro. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1055 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 85f2b2c5 2012-04-25T06:06:33 Added rules for ignoring comments. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1053 736b8ea6-26fd-11df-bfd4-992fa37f6226
kbr@chromium.org ddb6e8e3 2012-04-25T00:48:13 Stop using unsafe sprintf method. ISSUE=308 Signed-off-by: Kenneth Russell Author: David Kilzer git-svn-id: https://angleproject.googlecode.com/svn/trunk@1052 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 28182485 2012-04-24T23:07:34 Drastically simplified Input class. Now most of the heavy lifting is done by in-built yy_scan_string and yy_scan_bytes. Comment handling will be done by the lexer. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1051 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org d08bb0cc 2012-04-23T19:27:13 The default implementation in flex only handles LF characters. GLSL supports all three newline characters - LF, CR, and CR+LF. Use a custom newline handler. Review URL: https://codereview.appspot.com/6105045 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1049 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 036a7356 2012-04-20T22:34:53 Do not return newline and number sign. They are for internal purposes only. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1048 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 78a35198 2012-04-19T17:16:26 Added a catch-rule for invalid numbers. Note that we do not need such a rule for identifiers because they will always be either terminated by a space, a punctuator, or an invalid character. Space and punctuator are both valid cases. The invalid character will be caught by another rule specifically for invalid characters. I will cover this case when I add tests for valid character set. Review URL: https://codereview.appspot.com/5978048 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1047 736b8ea6-26fd-11df-bfd4-992fa37f6226
zmo@google.com aeba7b89 2012-04-17T23:25:10 Build fix for chromeos. BUG= TEST=chromeos bots compile when we roll ANGLE TBR=alokp git-svn-id: https://angleproject.googlecode.com/svn/trunk@1046 736b8ea6-26fd-11df-bfd4-992fa37f6226
zmo@google.com e63436b9 2012-04-13T22:51:42 Handle hex int constant in preprocessor The patch is provided by jdashg and committed by zmo. (see angle issue 178) ANGLEBUG=178 TEST=shader-with-hex-int-constant-macro.html TBR=zmo Review URL: https://codereview.appspot.com/6037044 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1041 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 320c5d7f 2012-04-13T21:32:35 Minor formatting change in pp.l. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1039 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 763d0fb9 2012-04-13T21:27:06 Fixed compile error in lexer_glue.cpp. TBR=zmo@chromium.org Review URL: https://codereview.appspot.com/6035044 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1038 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org d089d118 2012-04-13T17:05:12 Removed unnecessary includion of Token.h in various files. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1037 736b8ea6-26fd-11df-bfd4-992fa37f6226
zmo@google.com 5e75f344 2012-04-12T23:47:10 Mac/Linux build fix. BUG= TEST=compile fine TBR=alokp Review URL: https://codereview.appspot.com/6013048 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1035 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 14e966b2 2012-04-12T20:57:53 Modified the interface of Preprocessor. Added it to the build file. Lexer changes to record leading space. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1033 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 40da4c53 2012-04-12T05:23:19 Added HAS_LEADING_SPACE flag to pp::Token. Split the new preprocessor into a separate target. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1032 736b8ea6-26fd-11df-bfd4-992fa37f6226
zmo@google.com b7ad052f 2012-04-11T20:55:01 Fix a few compilation warning/errors on Linux/Mac. Review URL: https://codereview.appspot.com/6009045 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1030 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org bac1aa1c 2012-04-05T17:06:55 Removed the unnecessary usage of InputSrc::getch and InputSrc::ungetch when handling pragma. These functions are not supported by the new lexer. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1020 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 408c45e7 2012-04-05T15:54:43 Added an alternate lexer for the existing preprocessor. It is still behind a compile-time flag. Review URL: https://codereview.appspot.com/5976072 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1019 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org ff6a0a5c 2012-04-03T21:03:02 Fixed line number reporting. Each newline was being counted twice. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1015 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 3f990c4a 2012-04-03T19:50:35 Added lexer rules for operators. Review URL: https://codereview.appspot.com/5966072 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1014 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 4b2a522a 2012-04-03T17:19:42 Punted on bison parser. It was turning out to be more complicated than necessary. Manual parsing combined with a flex lexer is easier. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1012 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 01fd431c 2012-03-30T21:33:30 More prep work for macro expansion. Off-loaded lexing from Context class to a new Lexer class. Review URL: https://codereview.appspot.com/5059048 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1011 736b8ea6-26fd-11df-bfd4-992fa37f6226