Commit Graph

371 Commits (master)

Author SHA1 Message Date
Daniel Kolesa b5568456a5 forgot some exports 2016-10-22 19:34:52 +02:00
Daniel Kolesa b3e31c1d25 use Size for linenum 2016-10-15 21:15:19 +02:00
Daniel Kolesa f124126b32 use str parse util for blockstrs 2016-10-12 02:05:55 +02:00
Daniel Kolesa 5fe766aaeb use the new util in parser 2016-10-11 21:23:04 +02:00
Daniel Kolesa 0a88a10d99 add a line-counting parse_string to util 2016-10-11 21:15:23 +02:00
Daniel Kolesa 27affb1057 expose string parse 2016-10-10 20:14:16 +02:00
Daniel Kolesa 7f1c6b03a8 don't copy where not necessary 2016-10-04 20:30:13 +02:00
Daniel Kolesa c4471b71bf unexpose allocator related stuff from public API 2016-10-03 19:23:15 +02:00
Daniel Kolesa 4353bb7904 move allocator into shared state 2016-10-02 13:56:55 +02:00
Daniel Kolesa 5d70e2c80f simplify parser error handling (and allow for wider usage of line infos) 2016-09-29 21:21:21 +02:00
Daniel Kolesa cd515a4cff expose word parsing into API and unify with parser 2016-09-29 20:57:47 +02:00
Daniel Kolesa 9995fcf2e1 str parse cleanup 2016-09-26 02:27:33 +02:00
Daniel Kolesa 15e692f755 save state within ListParser and throw errors on unfinished strings in lists 2016-09-25 15:26:38 +02:00
Daniel Kolesa ccf24e95f5 line breaking in strings without inserting newlines 2016-09-24 03:31:56 +02:00
Daniel Kolesa 64b12b442b remove a jump 2016-09-23 21:06:44 +02:00
Daniel Kolesa 3a0cd8d378 exception-proof rundepth 2016-09-23 21:04:52 +02:00
Daniel Kolesa 1cdcc438cc debug fix 2016-09-23 20:18:01 +02:00
Daniel Kolesa de98b808ef allow breaking statements into multiple lines with \ 2016-09-23 20:04:29 +02:00
Daniel Kolesa 604fd4e000 proper line infos at parse time 2016-09-22 01:44:35 +02:00
Daniel Kolesa 0f10c3e303 safer next_char() 2016-09-22 01:19:29 +02:00
Daniel Kolesa 1c9f9c8f9f safe lexing with unterminated strings 2016-09-22 01:15:51 +02:00
Daniel Kolesa b3110c30b9 use ConstCharRange for source 2016-09-22 01:12:32 +02:00
Daniel Kolesa 5527025d5c more cleanups 2016-09-22 00:42:34 +02:00
Daniel Kolesa 9bfb599f64 fixes 2016-09-22 00:40:33 +02:00
Daniel Kolesa 73f770552c clean up parser a bit 2016-09-22 00:36:21 +02:00
Daniel Kolesa 33c6479539 move ListParser utils out of the way 2016-09-21 21:02:13 +02:00
Daniel Kolesa 918ca216a3 recursive parseword 2016-09-21 20:48:56 +02:00
Daniel Kolesa 1b25b64ae5 force strings to be finished 2016-09-20 22:33:02 +02:00
Daniel Kolesa 43e272c7e0 more parser cleanups 2016-09-20 22:24:56 +02:00
Daniel Kolesa 6f706dea86 properly get rid of cutstring/cutword 2016-09-20 22:11:40 +02:00
Daniel Kolesa 814b2824e9 match ostd api 2016-09-18 19:31:19 +02:00
Daniel Kolesa b57fcd082b split up statement parser a bit 2016-09-17 22:32:32 +02:00
Daniel Kolesa 62d4afccd2 remove set_mstr 2016-09-15 23:09:52 +02:00
Daniel Kolesa 1846fee1a0 clean up string lib 2016-09-15 23:04:32 +02:00
Daniel Kolesa 4bbe2ca6df clean up list sort 2016-09-15 22:45:28 +02:00
Daniel Kolesa cf21ba0a86 list lib cleanup 2016-09-15 22:34:52 +02:00
Daniel Kolesa 845232605d remove the out stream and re-do the var printing system 2016-09-15 21:59:11 +02:00
Daniel Kolesa 192ce615d8 remove get_err/set_err 2016-09-15 21:27:14 +02:00
Daniel Kolesa f12197bbe5 throw CsErrorException where appropriate (robust error handling everywhere) 2016-09-15 21:15:54 +02:00
Daniel Kolesa 377e9d7702 throw out of the VM on errors 2016-09-15 20:55:58 +02:00
Daniel Kolesa 214ecf8ad2 fix multi-operand cmp bug 2016-09-15 19:21:06 +02:00
Daniel Kolesa c97e56d7b7 fix doargs segv 2016-09-15 04:30:37 +02:00
Daniel Kolesa 38c17d1911 implement break/continue in bytecode 2016-09-15 02:12:22 +02:00
Daniel Kolesa b05bc51b14 reduce the instruction number by merging some instructions 2016-09-15 02:02:54 +02:00
Daniel Kolesa b0917ade03 use type inference for shorter command funcs 2016-09-15 00:42:19 +02:00
Daniel Kolesa c5772f0720 add loop control (break and continue) 2016-09-14 23:24:13 +02:00
Daniel Kolesa b20eb94a9e alloc error stack using CsState 2016-09-14 21:46:47 +02:00
Daniel Kolesa e7f3213588 custom allocf support 2016-09-14 21:33:32 +02:00
Daniel Kolesa e41c3c03a1 use exceptions to throw errors 2016-09-14 00:14:21 +02:00
Daniel Kolesa 4510e53916 use normal exception handling to handle errors C++-side, also guarantee valid pointer from alloc 2016-09-13 23:47:06 +02:00
Daniel Kolesa 35ebb0e822 useful funcs to alloc resources for internal use 2016-09-13 18:57:02 +02:00
Daniel Kolesa f97f896017 throwing errors now does not allocate (besides the stack) 2016-09-12 21:47:29 +02:00
Daniel Kolesa ce62593840 move idents/identmap into internal state 2016-09-12 20:04:59 +02:00
Daniel Kolesa 083f905913 explicitly pass CsState to all callbacks (might be a different thread eventually) 2016-09-11 23:13:39 +02:00
Daniel Kolesa dc5294bac3 re-done pcall without blocks 2016-09-10 20:44:06 +02:00
Daniel Kolesa 6d2d8dda73 remove nodebug (useless/incompatible with pcall) 2016-09-10 20:10:15 +02:00
Daniel Kolesa 820e7a9e9b opaque callstack 2016-09-10 20:03:58 +02:00
Daniel Kolesa 233b9dc7dd get rid of noalias 2016-09-10 19:54:55 +02:00
Daniel Kolesa f1e1a02a11 panic func takes ConstCharRange 2016-09-10 18:49:36 +02:00
Daniel Kolesa dfe491e4b3 error cleanup and always include lineinfo where possible 2016-09-10 16:06:01 +02:00
Daniel Kolesa 3e0b35e427 fix a subtle bug with small int->string conversions 2016-09-10 15:31:13 +02:00
Daniel Kolesa 323c84c3d6 trigger actual errors from parser 2016-09-10 15:01:49 +02:00
Daniel Kolesa 879737ce83 remove unnecessary func, allow formatted errors 2016-09-10 01:11:21 +02:00
Daniel Kolesa 32c53a31a0 pass callstack state with errors 2016-09-09 19:19:50 +02:00
Daniel Kolesa f1039148b0 allow for arbitrarily sized CsInt/CsFloat 2016-09-09 17:43:23 +02:00
Daniel Kolesa 9b292188c8 simple interface to error/pcall on cubescript side 2016-09-09 01:18:06 +02:00
Daniel Kolesa bb72c27d2d simple error handling mechanism (will be used extensively later once it improves) 2016-09-09 00:42:53 +02:00
Daniel Kolesa 5674375614 clean up the call stack in a scoped way properly always 2016-09-08 23:42:14 +02:00
Daniel Kolesa e3310ce74f fix invalid free in code cleanup 2016-09-08 22:04:36 +02:00
Daniel Kolesa f3fd6892bc rename p_stack to p_callstack in CsState 2016-09-08 21:30:08 +02:00
Daniel Kolesa cdb5a5f6f8 source tree reorg 2016-09-07 22:57:28 +02:00