Commit graph

334 commits

Author SHA1 Message Date
Wolfgang (Blub) Bumiller
41d1ef37d2 use the expression's linenumber for the 'statement has no effect' warning rather than the current one because that one's usually the line below... 2012-08-23 20:56:05 +02:00
Wolfgang (Blub) Bumiller
cb604603ca -Weffectless-statement now also triggers on effectless incrementors in for-loops, if an incrementor was specified 2012-08-23 20:54:24 +02:00
Wolfgang (Blub) Bumiller
45388202c4 -Weffectless-statement, on by default, creates 'statement has no effect' warning 2012-08-23 20:52:09 +02:00
Wolfgang (Blub) Bumiller
dff6328c9e add 'X has been declared here:' too the too-few/many-parameters warning/error 2012-08-23 20:48:51 +02:00
Wolfgang (Blub) Bumiller
8adbf07555 Warn about unused globals too, not about functions or constants though 2012-08-23 20:32:33 +02:00
Wolfgang (Blub) Bumiller
c84830bdee Warna bout unused variables - -Wunused-variable, on by default 2012-08-23 20:25:54 +02:00
Wolfgang (Blub) Bumiller
5022f716dc fix: check if parsing a variable initializer failed 2012-08-23 13:30:30 +02:00
Wolfgang (Blub) Bumiller
412446f42e -std=qcc now warns about variadic functions via -Wextensions 2012-08-23 11:33:50 +02:00
Wolfgang (Blub) Bumiller
f22112bcb8 Variadic functions: works for builtins, warns for implemenetd functions, -Wvariadic-function, on by default 2012-08-23 11:29:48 +02:00
Wolfgang (Blub) Bumiller
d4077f6884 Have the parser generate immediates AFTER generating the globals for correct def layout 2012-08-22 14:20:28 +02:00
Wolfgang (Blub) Bumiller
330a801ae9 Pop off all the locals after a function 2012-08-22 12:59:52 +02:00
Wolfgang (Blub) Bumiller
19b66800ae TYPE_FUNCTION values which are not constant are now allowed to be generated, they are function pointers. 2012-08-21 16:01:28 +02:00
Wolfgang (Blub) Bumiller
22896e5ef6 at last, the annoying missing ast_delete(typevar) 2012-08-21 11:21:05 +02:00
Wolfgang (Blub) Bumiller
d7f43dfa4d some more error situations where typevar wouldn't get freed 2012-08-21 11:18:40 +02:00
Wolfgang (Blub) Bumiller
8fcc528ffa new warning: -Wlocal-constants 2012-08-21 10:18:55 +02:00
Wolfgang (Blub) Bumiller
92e8f08df3 don't _move_ values out of immediates, it causes NULL strings to be code-generated 2012-08-21 10:08:17 +02:00
Wolfgang (Blub) Bumiller
02cc86db25 Since function prototypes now don't cause the function to become a constant, we cannot check for a constant in [frame,think] notations anymore 2012-08-20 18:27:27 +02:00
Wolfgang (Blub) Bumiller
0d64e555e2 Better handling of EOF - encountering EOF in parser_next will not return false yet, this is a more elegant way... 2012-08-20 18:15:31 +02:00
Wolfgang (Blub) Bumiller
5a0995c767 better handlign of a too early error condition 2012-08-20 18:14:02 +02:00
Wolfgang (Blub) Bumiller
198e35a823 Fix correction of parsiong of multiple variables: parse past the comma 2012-08-20 18:10:06 +02:00
Wolfgang (Blub) Bumiller
99bab76006 Creating the ast_function for a function only when encountering its body, so if no body is specified it works like a function pointer - just like QC wants it 2012-08-20 18:09:41 +02:00
Wolfgang (Blub) Bumiller
20448b93dc Corrected parsing of declarations of multiple variables 2012-08-20 17:59:19 +02:00
Wolfgang (Blub) Bumiller
f0f9680774 add the backticks for a warning 2012-08-19 20:41:31 +02:00
Wolfgang (Blub) Bumiller
af3d9e0bdf ir_value_set_string needs to use a strdup which doesn't return NULL for an emptystring 2012-08-19 20:35:51 +02:00
Wolfgang (Blub) Bumiller
c12e60a510 take 'warnreturn' into account, don't ignore the parsewarnin's Werror status 2012-08-19 20:32:07 +02:00
Wolfgang (Blub) Bumiller
7ef248aadb set -Wmissing-return-values to on by default, new warning: control reaches end of non-void... 2012-08-19 20:26:54 +02:00
Wolfgang (Blub) Bumiller
66ec592f94 parse_block gets a warn-return bool flag 2012-08-19 20:20:39 +02:00
Wolfgang (Blub) Bumiller
adda894976 have function declarations of functions with prototypes take over the actual declaration's body's context data 2012-08-19 19:39:58 +02:00
Wolfgang (Blub) Bumiller
481baeeedc relax parse_close_paren to allow values in parenthesis with no operators... duh 2012-08-19 19:35:45 +02:00
Wolfgang (Blub) Bumiller
a93ed6ae80 fix: use thinkfunc not nextthink, nextthink is set later 2012-08-19 19:25:37 +02:00
Wolfgang (Blub) Bumiller
bd64d7d7b4 Automatic prototyping of frame-functions 2012-08-19 19:24:43 +02:00
Wolfgang (Blub) Bumiller
dae13e87de First draft of handling the [frame,think] notation 2012-08-19 16:13:29 +02:00
Wolfgang (Blub) Bumiller
92d40e0925 Factoring out duplicate code into a function: create_vector_members; creating vector members for vector function parameters 2012-08-19 14:34:23 +02:00
Wolfgang (Blub) Bumiller
78d04a8352 implement correct behaviour for shadows locals 2012-08-18 21:56:42 +02:00
Wolfgang (Blub) Bumiller
ee3aaa58b3 -Wlocal-shadows - note that -std=gmqcc is very different from the rest 2012-08-18 21:54:19 +02:00
Wolfgang (Blub) Bumiller
deccf4e708 splitting parser_find_local up into find_local and find_param - find_local also takes a bool-ptr to tell the caller if it was a local or a global 2012-08-18 21:42:52 +02:00
Wolfgang (Blub) Bumiller
28891c5a37 quotes around the variable name in some messages 2012-08-18 21:35:47 +02:00
Wolfgang (Blub) Bumiller
cd820c831f remove trailing \n from 2 error messages 2012-08-18 21:32:29 +02:00
Wolfgang (Blub) Bumiller
83a758e446 set olddecl so we don't access a NULL value when a variable already exists 2012-08-18 21:31:53 +02:00
Wolfgang (Blub) Bumiller
fc1622140b oops - parsewarning returns true on -Werror, so we gotta invert here 2012-08-18 21:07:23 +02:00
Wolfgang (Blub) Bumiller
4d0be789ac -Wtoo-few-parameters on by deafult - for -std=gmqcc it's always an error 2012-08-18 21:04:16 +02:00
Wolfgang (Blub) Bumiller
6223d78ee3 -Wmissing-return-values, off by default, ignored with -std=gmqcc because in that standard it'll error 2012-08-18 20:19:43 +02:00
Wolfgang (Blub) Bumiller
588cd5018f data/vars.qc - when declaring a function, and it had a prototype - use the new parameter names instead of the ones from the prototype, otherwise things get messy 2012-08-18 20:16:51 +02:00
Wolfgang (Blub) Bumiller
7cc1609117 Disable the member-of namespace check when -std != gmqcc 2012-08-18 19:43:34 +02:00
Wolfgang (Blub) Bumiller
d88e3e8f24 move the member-of check for '.' to after applying the previous dot operators so we don't need parens around 'a.b' of 'a.b.c = x' 2012-08-18 19:42:38 +02:00
Wolfgang (Blub) Bumiller
586bb07c4d Use the current context, not the one from a NULL value... for ast_return 2012-08-18 18:00:20 +02:00
Wolfgang (Blub) Bumiller
701c387dbf parse 'return' without values better 2012-08-18 17:58:51 +02:00
Wolfgang (Blub) Bumiller
2cf4895cc7 Fixup some possibly uninitialized value when parsing 'return' 2012-08-18 17:48:29 +02:00
Wolfgang (Blub) Bumiller
0e3bc87c75 Don't re-add defs which had a prototype 2012-08-18 17:42:38 +02:00
Wolfgang (Blub) Bumiller
24a21d0816 ast_value_copy should copy the expression substructure as well - exposing ast_value_copy to the outside since the parser needs to copy complete types when multiple variables are declared with commas 2012-08-18 17:16:20 +02:00
Wolfgang (Blub) Bumiller
6daf47fc5b set parser->lex to NULL after closing 2012-08-18 16:42:17 +02:00
Wolfgang (Blub) Bumiller
16b5f28b40 don't deallocate the parser on a compile error -_- 2012-08-18 16:40:20 +02:00
Wolfgang (Blub) Bumiller
b6ab0207b1 ast_block_collect: add to ast_block->collect and set the node's .keep=true, those will now always be deleted by the ast_block dtor 2012-08-18 16:27:40 +02:00
Wolfgang (Blub) Bumiller
68e4a937f2 collect vector-member locals in ast_block->collect, like a garbage collection... 2012-08-18 16:24:26 +02:00
Wolfgang (Blub) Bumiller
897bd5727e Revert "let ast_node have a use-counter, helpful for the parser to delete unused fields which otherwise get lost in the void"
This reverts commit 25ffd11aa6.
2012-08-18 16:20:45 +02:00
Wolfgang (Blub) Bumiller
d4587e5667 Revert "delete ast_members from parser->locals when they were unused"
This reverts commit cdeffb6de9.
2012-08-18 16:20:23 +02:00
Wolfgang (Blub) Bumiller
cdeffb6de9 delete ast_members from parser->locals when they were unused 2012-08-18 16:20:17 +02:00
Wolfgang (Blub) Bumiller
25ffd11aa6 let ast_node have a use-counter, helpful for the parser to delete unused fields which otherwise get lost in the void 2012-08-18 16:16:43 +02:00
Wolfgang (Blub) Bumiller
d5e01ba904 clear all the remaining vectors in the parser 2012-08-18 15:59:29 +02:00
Wolfgang (Blub) Bumiller
2045321296 free parser->fields and parser->locals at parser_cleanup 2012-08-18 15:55:50 +02:00
Wolfgang (Blub) Bumiller
483ce89d78 Delete fields in parser_cleanup 2012-08-18 15:51:53 +02:00
Wolfgang (Blub) Bumiller
e2faedcca8 the opening paren is now an operator - to fix up the precedence rules, now 'anentity.afunction()' compiles 2012-08-18 15:25:45 +02:00
Wolfgang (Blub) Bumiller
267bb7d41e get rid of additional trailing \n on parseerror 2012-08-18 14:55:37 +02:00
Wolfgang (Blub) Bumiller
46b4eb1f46 WARN_ERROR -> opts_werror in parser.c 2012-08-18 14:51:12 +02:00
Wolfgang (Blub) Bumiller
7ecd9714b0 add the type of whatever is 'not a function' to that error message 2012-08-18 12:45:51 +02:00
Wolfgang (Blub) Bumiller
6b1a0541c9 parser_strdup to wrap util_strdup and actually dup empty strings 2012-08-18 12:26:21 +02:00
Wolfgang (Blub) Bumiller
e00c8da849 Added support for some modelgen/spritegen commands 2012-08-16 20:47:31 +02:00
Wolfgang (Blub) Bumiller
54dcbc22bf NOT for entity, function and string - we're not constant-folding it for functions and entities right now 2012-08-16 16:24:47 +02:00
Wolfgang (Blub) Bumiller
31a8cd80c8 unary NOT operator for float and vector 2012-08-16 16:21:19 +02:00
Wolfgang (Blub) Bumiller
1a3a0014c5 even in non-qcc mode we need to search the variables for fields because of field-pointers 2012-08-16 16:21:09 +02:00
Wolfgang (Blub) Bumiller
7c731b70cf verbose error about unhandled operators 2012-08-16 16:07:00 +02:00
Wolfgang (Blub) Bumiller
d81ef81246 Fix an error message 2012-08-16 15:59:09 +02:00
Wolfgang (Blub) Bumiller
ec439d7880 Allow fieldpointer parameters in functions, allow function fields again 2012-08-16 15:27:06 +02:00
Wolfgang (Blub) Bumiller
47243d0df1 allow redeclaration of fields, but warn about them 2012-08-16 15:14:39 +02:00
Wolfgang (Blub) Bumiller
5a383ac2b0 Reorganizing expression parsing to allow prefix-operators like unary minus 2012-08-16 15:11:03 +02:00
Wolfgang (Blub) Bumiller
c4730b405b unary - operator implemented, adding imm_vector_zero and imm_float_zero since those should be accessible quickly 2012-08-16 14:23:18 +02:00
Wolfgang (Blub) Bumiller
ba1886ad31 add some missing casts to some mem_a 2012-08-16 12:34:28 +02:00
Wolfgang (Blub) Bumiller
470fc68b06 don't try to access function-local functions outside of functions... 2012-08-16 11:36:16 +02:00
Wolfgang (Blub) Bumiller
2a7e7046d9 assigning values to constant globals 2012-08-16 11:33:29 +02:00
Wolfgang (Blub) Bumiller
b7f9b20a2b strpcy->memcpy 2012-08-15 17:01:16 +02:00
Wolfgang (Blub) Bumiller
42e2102839 remove MEM_VECTOR_INIT - the memset does it all, don't give a false sense of initialization since it wasn't complete anyway 2012-08-15 12:13:15 +02:00
Wolfgang (Blub) Bumiller
e5124ecf2f Fix memset on the parser... 2012-08-15 12:11:15 +02:00
Wolfgang (Blub) Bumiller
475cb97404 bit-and const-fold should use bitand not bitor 2012-08-14 23:52:57 +02:00
Wolfgang (Blub) Bumiller
c0ddb0908c constant folding for bit and logic ops, added some macros to shorten the code (by a lot) 2012-08-14 23:50:49 +02:00
Wolfgang (Blub) Bumiller
a5b3faae30 const folding for division 2012-08-14 23:43:08 +02:00
Wolfgang (Blub) Bumiller
b8d92dfa01 constant folding for +, - and * 2012-08-14 22:51:05 +02:00
Wolfgang (Blub) Bumiller
9ed9a0c669 get rid of more duplicate code 2012-08-14 22:34:20 +02:00
Wolfgang (Blub) Bumiller
de4fe00d2f Allow multiple fields to be declared using comma 2012-08-14 22:31:08 +02:00
Wolfgang (Blub) Bumiller
e9844d9abf vector fields now get _x, _y and _z too 2012-08-14 20:00:11 +02:00
Wolfgang (Blub) Bumiller
4c5c615f95 combine 2 ifs to shorten code a little 2012-08-14 17:48:22 +02:00
Wolfgang (Blub) Bumiller
8dd7943768 -= operator 2012-08-14 17:44:14 +02:00
Wolfgang (Blub) Bumiller
3ef6da8e5b error message replacement 2012-08-14 17:36:20 +02:00
Wolfgang (Blub) Bumiller
a574da7df8 += operator implemented 2012-08-14 17:30:55 +02:00
Wolfgang (Blub) Bumiller
3544cfa2b2 make the += operator use binstore actually, currently it was acting like a regular plus 2012-08-14 17:27:52 +02:00
Wolfgang (Blub) Bumiller
f39a47e4ed replacing lots of error messages 2012-08-14 17:27:26 +02:00
Wolfgang (Blub) Bumiller
7506817224 shush typo 2012-08-14 17:17:35 +02:00
Wolfgang (Blub) Bumiller
c4cd49a408 different warning message 2012-08-14 17:08:00 +02:00
Wolfgang (Blub) Bumiller
ca1c9b921d another -Wextensions situation: -std=qcc has no for loops 2012-08-14 16:59:14 +02:00
Wolfgang (Blub) Bumiller
16093adb09 fixup do-while parsing, expect a semicolon afterwards 2012-08-14 16:42:29 +02:00
Wolfgang (Blub) Bumiller
339c0e5870 do-while loops 2012-08-14 16:38:11 +02:00
Wolfgang (Blub) Bumiller
4d47c40cb9 parsewarning() now gets GMQCC_WARN since parsewarning returns whether or not the warning was treated as an error, thus we need to bail if it returns true 2012-08-14 16:26:42 +02:00
Wolfgang (Blub) Bumiller
2d9623cbe8 the 'local' keyword now also introduces the declaration of a local variable 2012-08-14 16:22:38 +02:00
Wolfgang (Blub) Bumiller
107100c666 -dump option, by default the IR is not dumped anymore 2012-08-14 16:19:23 +02:00
Wolfgang (Blub) Bumiller
1638cc9f01 -Wextensions for -std=qcc: warn about missing 'local' keyword when declaring a variable without it 2012-08-14 16:17:09 +02:00
Wolfgang (Blub) Bumiller
cc48802685 eof after parsing the semicolon of a function declaration shouldn't be an error... 2012-08-14 16:14:26 +02:00
Wolfgang (Blub) Bumiller
78d223fdcb Getting rid of some debug output 2012-08-14 16:12:12 +02:00
Wolfgang (Blub) Bumiller
c2364567de allow a semicolon after function bodies - make it mandatory with -std=qcc 2012-08-14 14:38:02 +02:00
Wolfgang (Blub) Bumiller
51719db2cf actually print the prototype's file+line, not the current one 2012-08-14 14:19:44 +02:00
Wolfgang (Blub) Bumiller
65fb4b34b5 type comparison, function prototypes 2012-08-14 14:14:56 +02:00
Wolfgang (Blub) Bumiller
e35a26a9e1 the error about an already-declared variable should display the place its been previously declared at 2012-08-14 13:50:55 +02:00
Wolfgang (Blub) Bumiller
5ef88dbda7 removed redundant error+file+line in parseerror() 2012-08-14 13:15:55 +02:00
Wolfgang (Blub) Bumiller
104e9bce92 don't add the general 'parse error' message if an error has already been printed 2012-08-14 11:54:27 +02:00
Wolfgang (Blub) Bumiller
579ac3dd5d Working towards a saner error-output system, adding -Werror 2012-08-14 11:34:07 +02:00
Wolfgang (Blub) Bumiller
c08966a2a4 remove now unused files 2012-08-14 10:57:09 +02:00
Wolfgang (Blub) Bumiller
69d9afbc69 while, for 2012-08-13 17:10:13 +02:00
Wolfgang (Blub) Bumiller
1c4a11f6fb factored out 'if' parsing code into a function, added 'while' parsing, and errors for more unsupported operators 2012-08-13 16:45:35 +02:00
Wolfgang (Blub) Bumiller
5ca3fed36a Even more operators 2012-08-13 15:33:32 +02:00
Wolfgang (Blub) Bumiller
d8890fda9e More operations 2012-08-13 15:24:55 +02:00
Wolfgang (Blub) Bumiller
5390b2d7c2 nicer error messages, bitand and bitor for floats allowed 2012-08-13 15:13:43 +02:00
Wolfgang (Blub) Bumiller
9f151e82df Check types on + and - operations 2012-08-13 15:09:27 +02:00
Wolfgang (Blub) Bumiller
c7cca404dc after a closing paren another operator has to be expected again 2012-08-12 20:21:21 +02:00
Wolfgang (Blub) Bumiller
fb8a9b3ccf some debug outputs which can be activated via a define, fixing a bug where the shunting yard tries to apply operators when there are none left 2012-08-12 20:13:14 +02:00
Wolfgang (Blub) Bumiller
6806fd1e86 it's a member of entity, not of a field... 2012-08-12 19:29:18 +02:00
Wolfgang (Blub) Bumiller
6409bf455f -std=gmqcc way to handle fields by 'namespace' 2012-08-12 19:24:08 +02:00
Wolfgang (Blub) Bumiller
ae73332832 without -std=gmqcc fields are accessible anywhere where globals are 2012-08-12 19:02:52 +02:00
Wolfgang (Blub) Bumiller
437988c5b4 don't rewind local variables too far 2012-08-12 18:58:46 +02:00
Wolfgang (Blub) Bumiller
5c0ac35d4c tempcomitting parser changes for fields 2012-08-11 15:40:03 +02:00
Wolfgang (Blub) Bumiller
ce082551d8 handling if/else, shunting yard now leaves unmatched closing paren-tokens on the parser for this purpose 2012-08-11 11:17:46 +02:00
Wolfgang (Blub) Bumiller
3e4f490a59 Handling blocks and inner blocks 2012-08-11 10:35:10 +02:00
Wolfgang (Blub) Bumiller
d3d2e00b64 let's be less insane with function naming and prepare parsing for control structures 2012-08-11 10:30:54 +02:00
Wolfgang (Blub) Bumiller
167b432622 creating vector's _xyz globals now, accessing them 2012-08-10 22:59:47 +02:00
Wolfgang Bumiller
71d79d99d3 parser_init,compile,finish,cleanup - used in main 2012-07-28 21:21:41 +02:00
Wolfgang Bumiller
342836c6df adapting to change in master: ast_store takes an ast_expression 2012-07-28 18:17:29 +02:00
Wolfgang Bumiller
ae12583ada Adding more cleanup; checking whether or not a return has the right type 2012-07-28 16:06:55 +02:00
Wolfgang Bumiller
75812d486a Handling output file, writing output file 2012-07-27 18:22:39 +02:00
Wolfgang Bumiller
79753d05bd Handling vector constants now too 2012-07-27 16:20:53 +02:00
Wolfgang Bumiller
b88e25ed81 Handling string-immediates 2012-07-27 16:10:43 +02:00
Wolfgang Bumiller
0a5e5c07e5 Adapting to changes of where parameters are stored in master 2012-07-27 15:26:48 +02:00
Wolfgang Bumiller
6379d39bb7 Starting some typechecking. Function parameters must be part of ast_expression_common, they're part of the type, not ast_value... 2012-07-27 15:07:25 +02:00
Wolfgang Bumiller
65f4f03aa5 Handling calls correctly now 2012-07-27 15:02:39 +02:00
Wolfgang Bumiller
c79bc784a3 Parsing function calls 2012-07-27 14:40:43 +02:00
Wolfgang Bumiller
3618d071ff fixing comma operator 2012-07-27 13:42:02 +02:00
Wolfgang Bumiller
e8b63575b2 keeping blocks around 2012-07-27 13:28:57 +02:00
Wolfgang Bumiller
6b85f3d370 factoring out the closing-paren handling code since it'll be used recursively 2012-07-27 13:07:16 +02:00
Wolfgang Bumiller
623046dda8 the comma is now in the operator list 2012-07-27 12:53:15 +02:00
Wolfgang Bumiller
f03bffc3ee opening paren and comma to the operator stack for function calls 2012-07-27 12:35:14 +02:00
Wolfgang Bumiller
b81b5d8c4d Removing some debug output 2012-07-27 12:28:14 +02:00
Wolfgang Bumiller
b70fd7e238 handle parameters in parser_find_local 2012-07-27 12:25:46 +02:00
Wolfgang Bumiller
a99972d7dd Parse named parameters of functions 2012-07-26 23:33:19 +02:00
Wolfgang Bumiller
5d766f60b2 parse ahead into the return expression as expected 2012-07-26 23:26:34 +02:00
Wolfgang Bumiller
e1c4600260 Listen to the warning instead... 2012-07-26 23:25:33 +02:00
Wolfgang Bumiller
b08de6ee5f Shutup a warning... 2012-07-26 23:24:36 +02:00
Wolfgang Bumiller
a0d78e985c handling return 2012-07-26 23:22:51 +02:00
Wolfgang Bumiller
dcb815a65f Handling parenthesis in expressions 2012-07-22 11:17:01 +02:00
Wolfgang Bumiller
21a2679efb add locals to their ast_block, can create stores now 2012-07-20 21:32:51 +02:00
Wolfgang Bumiller
071fd32040 Handling some operands, added type_name array 2012-07-20 21:19:30 +02:00
Wolfgang Bumiller
f78ed233c0 parser_sy_pop, has to pop operators and operands and push the result 2012-07-20 15:20:07 +02:00
Wolfgang Bumiller
9f54ea6643 working on operator translation 2012-07-20 15:03:11 +02:00
Wolfgang Bumiller
7185366ee5 handling of operations 2012-07-20 15:02:18 +02:00
Wolfgang Bumiller
5d6767f337 Starting expression parsing 2012-07-20 14:45:23 +02:00
Wolfgang Bumiller
e8563442a1 keeping float immediates/constants in parser's imm_float vector 2012-07-20 14:34:45 +02:00
Wolfgang Bumiller
9314157be5 Adding ids to operators for SYA later 2012-07-20 14:04:52 +02:00
Wolfgang Bumiller
69ba2dd9f8 statement/expression proto 2012-07-20 13:00:11 +02:00
Wolfgang Bumiller
2763578f8b Handling of multiple variables with comma 2012-07-20 12:53:42 +02:00
Wolfgang Bumiller
3decabaa8f Local variable parsing 2012-07-20 12:46:59 +02:00
Wolfgang Bumiller
5ffa0dda8e Keep track of blocklocal in parser_parse_block 2012-07-19 20:30:36 +02:00
Wolfgang Bumiller
c43bb71aa7 Factoring out variable parsing so it can be used for locals too 2012-07-19 20:15:30 +02:00
Wolfgang Bumiller
4360d3b5be Proto for parsing a function body 2012-07-19 19:57:24 +02:00
Wolfgang Bumiller
f4864fd5ac null-init parser_t, add a function member to it 2012-07-19 19:55:25 +02:00
Wolfgang Bumiller
03baa85c43 Properly parse functions without parameters 2012-07-19 19:53:58 +02:00
Wolfgang Bumiller
532aaba87d Parse away the semicolon after an assignment 2012-07-19 19:52:44 +02:00
Wolfgang Bumiller
02b4c7b7c1 merging master, and adapting 2012-07-19 18:15:27 +02:00
Wolfgang Bumiller
e7f8647d08 additional/superfluous check removed 2012-07-19 18:10:12 +02:00
Wolfgang Bumiller
6713c3fd5f Properly check if it's a function... checking the parameter count is not a correct check 2012-07-19 18:04:57 +02:00
Wolfgang Bumiller
8471d36aab builtins are negative 2012-07-19 17:54:35 +02:00
Wolfgang Bumiller
38edf7c1bd handling function definitions better, generating functions 2012-07-19 17:53:45 +02:00
Wolfgang Bumiller
6a346745aa Handling definition of builtins 2012-07-19 17:39:19 +02:00
Wolfgang Bumiller
c44355e224 handle EOF 2012-07-19 12:17:00 +02:00
Wolfgang Bumiller
1d55197097 parsing typenames completely now with function parameters 2012-07-19 11:41:16 +02:00
Wolfgang Bumiller
5b7dfb7e4b Building the output - global variables for now 2012-07-19 11:25:53 +02:00
Wolfgang Bumiller
d6cd3b6dc9 Don't die on regular EOF 2012-07-19 11:22:09 +02:00
Wolfgang Bumiller
d581fdc048 Reading a global def 2012-07-16 14:52:52 +02:00
Wolfgang Bumiller
4f611475de Starting some parsing 2012-07-16 14:14:37 +02:00
Wolfgang Bumiller
9b6598f049 Copying my old lexer 2012-07-16 13:59:10 +02:00