Branch :
| Author | Commit | Date | CI | Message |
|---|---|---|---|---|
| c022c3af | 2012-07-09 15: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 | ||
| d35efdf5 | 2012-07-03 19: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 | ||
| 2e81891c | 2012-06-29 21: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 | ||
| f115592d | 2012-06-28 23: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 | ||
| 5b6a68e0 | 2012-06-28 20: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 | ||
| 432d6fc4 | 2012-06-27 22: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 | ||
| 73bc298e | 2012-06-19 18: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 | ||
| f3cdb460 | 2012-06-19 18: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 | ||
| 36124de8 | 2012-05-24 02: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 | ||
| 98d04ec8 | 2012-05-21 22: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 | ||
| 2c958eef | 2012-05-17 20: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 | ||
| 04d7d22b | 2012-05-16 19: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 | ||
| 036a7356 | 2012-04-20 22: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 | ||
| 14e966b2 | 2012-04-12 20: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 | ||
| 01fd431c | 2012-03-30 21: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 | ||
| 3a01d1bc | 2011-08-30 05:10:53 | Preparation for macro expansion. Review URL: http://codereview.appspot.com/4919045 git-svn-id: https://angleproject.googlecode.com/svn/trunk@741 736b8ea6-26fd-11df-bfd4-992fa37f6226 | ||
| 4e4b807d | 2011-08-07 05:36:04 | Beginnings of a new preprocessor. Review URL: http://codereview.appspot.com/4830050 git-svn-id: https://angleproject.googlecode.com/svn/trunk@718 736b8ea6-26fd-11df-bfd4-992fa37f6226 |