Commit Graph

  • 022d636605 record class names master josh 2018-06-13 00:07:06 -04:00
  • 21e8c6c4ca add class declaration to the parser josh 2018-06-12 23:57:08 -04:00
  • 153d129111 execute rspec with bundle exec josh 2018-06-07 23:21:14 -04:00
  • 0efb143e81 update test bundler setup to add source server josh 2018-06-07 23:09:42 -04:00
  • c4615e0363 add binary literals josh 2018-05-30 21:18:03 -04:00
  • 94b65987d4 add test 4 josh 2018-05-30 20:48:28 -04:00
  • 273cdbcbf8 add test 3 josh 2018-05-30 20:45:55 -04:00
  • ca929b5ecd allow for C99 declarations in for loop josh 2018-05-30 20:45:21 -04:00
  • 91f63d1f49 show cxlc stderr on nonzero return code josh 2018-05-30 20:12:31 -04:00
  • 587a612650 return nonzero exit code on parse failure josh 2018-05-30 20:12:05 -04:00
  • 257b7c45c7 add test 2 josh 2018-05-30 20:03:03 -04:00
  • fa45ae1f9d ignore test artifacts josh 2018-05-30 19:53:29 -04:00
  • 0a624c6281 rebuild cxlc before running tests josh 2018-05-22 23:17:58 -04:00
  • 2dd7ff8560 do not decode escape characters in string literals josh 2018-05-22 23:15:05 -04:00
  • 27c65b0998 begin on test infrastructure josh 2018-05-22 23:09:28 -04:00
  • 1418907893 do not invoke compiler; just output .c file josh 2018-05-22 22:15:39 -04:00
  • 23a92ca9bd pull in getopt; add -o argument to specify output file name josh 2018-05-20 16:45:43 -04:00
  • 46145fa975 write fewer spaces to C file josh 2018-05-20 16:27:44 -04:00
  • e4b7f5335f preserve token order in list nodes josh 2018-05-20 16:24:05 -04:00
  • 4ab2032c00 use a list instead of a vector for list Nodes josh 2018-05-20 16:22:12 -04:00
  • bd52a4c5d5 create C files with ".c" suffix josh 2018-05-20 16:16:46 -04:00
  • 6217665076 fix adding all tokens to array in an enum_specifier rule josh 2018-05-20 16:13:35 -04:00
  • 9f2f6be9bb include doublequote characters in string literal token text josh 2018-05-20 16:11:36 -04:00
  • db08091cf4 compile the emitted C josh 2018-05-20 16:09:58 -04:00
  • 2dea7d0bac write C file josh 2018-05-20 16:04:44 -04:00
  • 2d76d34bc7 begin getting ready to emit C josh 2018-05-20 15:42:16 -04:00
  • e1f1bbcbb8 store all parse tree entries in node objects josh 2018-05-19 22:49:32 -04:00
  • aca67c1a54 Create some list nodes josh 2018-05-19 21:31:23 -04:00
  • eef900bedc allow brace-initialized arrays to be expressions josh 2018-05-12 20:33:08 -04:00
  • ba6a7317d1 allow __extension__ to precede expressions josh 2018-05-12 15:21:02 -04:00
  • 478c053cab support 'LL' integer suffix without 'u' josh 2018-05-12 15:09:47 -04:00
  • 290c2e343e support __inline__ josh 2018-05-12 15:03:38 -04:00
  • e014f94f1f add some gcc builtin float types josh 2018-05-12 15:02:09 -04:00
  • 32e9d59e58 allow full expressions in attributes, not just primary expressions josh 2018-05-12 14:58:46 -04:00
  • f3c1570c1f support __alignof__ expressions like sizeof() josh 2018-05-12 14:55:39 -04:00
  • db98fc1c7e Allow anonymous structs/unions within structs/unions josh 2018-05-12 14:53:18 -04:00
  • e9931d576b Support __extension__ josh 2018-05-12 11:57:44 -04:00
  • 6890ac97b5 Support inline/__inline josh 2018-05-12 11:54:14 -04:00
  • c5764ed15e allow asm volatile statements josh 2018-05-12 11:43:07 -04:00
  • b40f501d2a add asm statements/expressions josh 2018-05-12 11:40:28 -04:00
  • c5c0bddc33 Allow multiple consecutive string literals josh 2018-05-12 10:52:44 -04:00
  • 2c33cccaf7 Allow multiple consecutive __attribute__ blocks josh 2018-05-09 20:51:22 -04:00
  • ee0dd63670 add support for __restrict keyword josh 2018-05-09 20:49:27 -04:00
  • fa32c9bba6 Allow TYPE_NAME or IDENTIFIER to follow struct/union josh 2018-05-09 20:27:29 -04:00
  • aa6ef6b8d6 Add gcc-style attributes to parser josh 2018-05-09 20:24:12 -04:00
  • 625410faa0 Add some known built-in types to consider as TYPE_NAME tokens instead of IDENTIFIERs josh 2018-05-09 19:48:42 -04:00
  • 25f7c43d3b lexer: return TYPE_NAME instead of IDENTIFIER for identifiers that were previously typedeffed josh 2018-05-08 22:16:53 -04:00
  • 0a2e719f2c add list, declarator node types josh 2018-05-08 22:10:06 -04:00
  • 86c6243053 turn on bison output file to see conflicts josh 2018-05-08 20:50:26 -04:00
  • d5ae35df60 introduce TYPE_NAME token type josh 2018-05-08 20:39:49 -04:00
  • 584fdae2ba set token text to string literal value for string literal tokens josh 2018-05-08 20:26:34 -04:00
  • 051dd9b9c1 fix indentation josh 2018-05-08 20:21:29 -04:00
  • 24f18c5233 remove String module; use std::string josh 2018-05-08 20:13:47 -04:00
  • accaed47bc add infrastructure to keep track of observed type names in the future josh 2018-05-08 20:03:20 -04:00
  • 07fb50bb86 convert main module to a C++ module josh 2018-05-08 19:59:57 -04:00
  • 8733911e82 support C++ in build josh 2018-05-08 19:55:40 -04:00
  • 600d01193c update to waf 2.0.7 josh 2018-05-08 19:36:16 -04:00
  • 895ea27016 parser rewrite according to ANSI C grammar josh 2018-05-07 23:48:08 -04:00
  • a7d63e51e5 rewrite parser with C Syntax BNF file josh 2018-05-07 23:21:25 -04:00
  • e7835b4fac start rewriting grammar josh 2018-04-24 21:10:48 -04:00
  • 89e003b330 another fix to error location reporting josh 2018-04-24 21:05:33 -04:00
  • 3cd2d96611 Display original source file location for errors josh 2018-04-23 23:51:35 -04:00
  • 49afce6095 use last_column instead of first_column for error column tracking josh 2018-04-23 23:26:43 -04:00
  • 45de80c852 show source line on error josh 2018-04-23 23:11:30 -04:00
  • fc5dfb7744 move C code out of parser.y to parser.c josh 2018-04-23 22:48:59 -04:00
  • 8db0a47fb4 remove user_action() prototype josh 2018-04-23 22:25:13 -04:00
  • 57dcf9e62d create token nodes in lexer josh 2018-04-21 23:33:58 -04:00
  • 89889b778f Add Node module josh 2018-04-18 21:16:32 -04:00
  • 866dd42196 use %option noyywrap josh 2018-04-18 20:46:14 -04:00
  • b2072de717 Keep track of line number and filename from preprocessor output for error messages josh 2018-04-18 20:10:23 -04:00
  • 74031d18d7 add String_new_size() josh 2018-04-18 19:59:32 -04:00
  • 3508deecc5 finish adding grammar josh 2018-04-13 22:16:07 -04:00
  • 9d2c41edc1 Start adding some grammar definition josh 2018-04-11 22:05:39 -04:00
  • 50480d80b4 simpler octal escape pattern josh 2018-04-11 21:39:21 -04:00
  • 5615c5781d allow hexadecimal and octal escapes within character constants josh 2018-04-11 21:38:58 -04:00
  • 090521a805 allow leading "L" prefix for string constants josh 2018-04-11 21:36:15 -04:00
  • 3170f0870c add octal escape in string josh 2018-04-11 21:35:03 -04:00
  • 81614c41ab support all C character escape sequences josh 2018-04-11 21:29:18 -04:00
  • 4ffc67919e allow "L" prefix for character constants josh 2018-04-11 21:28:13 -04:00
  • e51103149b fix floating point suffix josh 2018-04-11 21:25:37 -04:00
  • 7149e3c5e3 allow sign after "e" in floating point constant josh 2018-04-11 21:24:13 -04:00
  • 21a42232f0 allow "nn." or ".nn" for floating point numbers josh 2018-04-11 21:20:20 -04:00
  • 75bda2b8ac allow float constants to have "e" suffix josh 2018-04-11 21:18:21 -04:00
  • 14bb4f4705 add more tokens josh 2018-04-10 21:23:03 -04:00
  • bd220b9b14 Parse after preprocessing josh 2018-04-07 11:17:28 -04:00
  • a87b938234 Add some temporary code to preprocess with gcc -E josh 2018-04-07 11:06:47 -04:00
  • 19c61a91fe add parse() josh 2018-04-07 10:06:49 -04:00
  • 6422e8d145 ignore whitespace josh 2018-04-07 09:35:59 -04:00
  • c6f5200e69 Terminate String memory with '\0' josh 2018-04-07 09:34:25 -04:00
  • 49e4e853be Don't forget to BEGIN(INITIAL) when terminating a string josh 2018-04-07 09:31:10 -04:00
  • aaf47bf934 Build a String value in the lexer for string constants josh 2018-04-07 09:26:39 -04:00
  • 961b3297f5 Add String module josh 2018-04-07 09:14:26 -04:00
  • 7107699bc5 Capture preprocessor-output lines and EOLs josh 2018-04-07 08:38:30 -04:00
  • 47bb3f5219 Add lexer tokens for integer, float, string constants and identifiers josh 2018-04-07 08:27:35 -04:00
  • 8795d30953 add some C keyword tokens josh 2018-04-06 12:03:17 -04:00
  • 3ead22e0cf add initial empty C, flex, and bison sources josh 2018-04-06 11:38:27 -04:00
  • 8d8c08cd85 Add waf, configure, Makefile, empty wscript josh 2018-04-06 10:58:29 -04:00