-
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