30 Commits

Author SHA1 Message Date
ee0dd63670 add support for __restrict keyword 2018-05-09 20:49:27 -04:00
aa6ef6b8d6 Add gcc-style attributes to parser 2018-05-09 20:24:12 -04:00
25f7c43d3b lexer: return TYPE_NAME instead of IDENTIFIER for identifiers that were previously typedeffed 2018-05-08 22:16:53 -04:00
584fdae2ba set token text to string literal value for string literal tokens 2018-05-08 20:26:34 -04:00
24f18c5233 remove String module; use std::string 2018-05-08 20:13:47 -04:00
895ea27016 parser rewrite according to ANSI C grammar
same problem as before - conflict in IDENTIFIER as a type name versus an actual identifier
2018-05-07 23:48:08 -04:00
49afce6095 use last_column instead of first_column for error column tracking 2018-04-23 23:26:43 -04:00
fc5dfb7744 move C code out of parser.y to parser.c 2018-04-23 22:48:59 -04:00
8db0a47fb4 remove user_action() prototype 2018-04-23 22:25:13 -04:00
57dcf9e62d create token nodes in lexer 2018-04-21 23:37:35 -04:00
866dd42196 use %option noyywrap 2018-04-18 20:46:14 -04:00
b2072de717 Keep track of line number and filename from preprocessor output for error messages 2018-04-18 20:10:23 -04:00
50480d80b4 simpler octal escape pattern 2018-04-11 21:39:21 -04:00
5615c5781d allow hexadecimal and octal escapes within character constants 2018-04-11 21:38:58 -04:00
090521a805 allow leading "L" prefix for string constants 2018-04-11 21:36:15 -04:00
3170f0870c add octal escape in string 2018-04-11 21:35:03 -04:00
81614c41ab support all C character escape sequences 2018-04-11 21:29:18 -04:00
4ffc67919e allow "L" prefix for character constants 2018-04-11 21:28:13 -04:00
e51103149b fix floating point suffix 2018-04-11 21:25:37 -04:00
7149e3c5e3 allow sign after "e" in floating point constant 2018-04-11 21:24:13 -04:00
21a42232f0 allow "nn." or ".nn" for floating point numbers 2018-04-11 21:20:20 -04:00
75bda2b8ac allow float constants to have "e" suffix 2018-04-11 21:18:21 -04:00
14bb4f4705 add more tokens 2018-04-10 21:23:03 -04:00
6422e8d145 ignore whitespace 2018-04-07 09:35:59 -04:00
49e4e853be Don't forget to BEGIN(INITIAL) when terminating a string 2018-04-07 09:31:10 -04:00
aaf47bf934 Build a String value in the lexer for string constants 2018-04-07 09:26:39 -04:00
7107699bc5 Capture preprocessor-output lines and EOLs 2018-04-07 08:38:30 -04:00
47bb3f5219 Add lexer tokens for integer, float, string constants and identifiers 2018-04-07 08:27:35 -04:00
8795d30953 add some C keyword tokens 2018-04-06 12:03:17 -04:00
3ead22e0cf add initial empty C, flex, and bison sources 2018-04-06 11:38:27 -04:00