Commit graph

1042 commits

Author SHA1 Message Date
Max Brunsfeld
c96c4a08e6 Use an object pool for stack nodes, to reduce allocations
Also, fix some leaks in the case where memory allocation failed during parsing
2016-02-04 11:19:42 -08:00
Max Brunsfeld
a302ee822a Add swift runtime memory memory leak to valgrind suppressions 2016-02-02 13:37:23 -08:00
Max Brunsfeld
29c77c34ef Avoid leaking copy of potentially-extra token 2016-02-02 13:13:32 -08:00
Max Brunsfeld
2da716d659 Update help message for test script 2016-02-02 12:31:13 -08:00
Max Brunsfeld
1c9dff6dad Guard memcpy calls in ts_parser__accept 2016-02-02 12:22:29 -08:00
Max Brunsfeld
4a7312e514 Fix memory leaks when editing 2016-02-02 12:22:29 -08:00
Max Brunsfeld
e3d65d5cbd Change name of generated parser files
The previous name, parser.c made it harder to set breakpoints inside of
src/runtime/parser.c in LLDB
2016-01-29 17:33:15 -08:00
Max Brunsfeld
7c44b0e387 Fix leaked lookahead trees in normal parsing 2016-01-29 17:31:43 -08:00
Max Brunsfeld
a74bf7ece1 Release tree when changing document's language 2016-01-29 17:25:07 -08:00
Max Brunsfeld
b1f4b046f5 Test script - allow valgrind to be run w/o the leak check 2016-01-29 17:03:35 -08:00
Max Brunsfeld
95828f42a8 Fix leak of StringInput wrapper struct 2016-01-29 16:40:38 -08:00
Max Brunsfeld
0cf59913ae Fix double retain of child trees 2016-01-28 23:15:22 -08:00
Max Brunsfeld
5f27550a7a Fix leaked nodes in stack 2016-01-28 21:18:57 -08:00
Max Brunsfeld
ca6dfb81d9 Run valgrind with full leak check 2016-01-28 21:18:41 -08:00
Max Brunsfeld
6401a065ae Use different types for advance and accept-token actions
Unlike with parse actions, lexical actions of different types never appear
in the same places in the table
2016-01-22 22:24:11 -07:00
Max Brunsfeld
1ec39abe6a clang-format 2016-01-22 22:10:18 -07:00
Max Brunsfeld
f0b1d851ce Fix uninitialized instance variable in ParseAction 2016-01-21 23:52:05 -07:00
Max Brunsfeld
6e2b49a539 Merge pull request #24 from maxbrunsfeld/handle-oom
Handle memory allocation failures gracefully
2016-01-21 23:51:28 -07:00
Max Brunsfeld
e17ce2903e Clean up ts_parser__breakdown_stack 2016-01-21 14:07:38 -07:00
Max Brunsfeld
39417e55df Test successful parsing after handling allocation failures 2016-01-19 19:52:07 -08:00
Max Brunsfeld
3dde0a6f39 Handle allocation failures during parsing 2016-01-19 18:08:01 -08:00
Max Brunsfeld
ff97a09343 Compile test grammars w/ debug symbols 2016-01-19 15:33:46 -08:00
Max Brunsfeld
1543a6c7b0 Handle allocation failures when instantiating documents 2016-01-18 11:32:10 -08:00
Max Brunsfeld
9d0835edbf Return non-const string from ts_node_string
The caller should free the string.
2016-01-18 10:27:23 -08:00
Max Brunsfeld
87316f22f3 Wrap all calls to malloc and friends 2016-01-15 15:27:50 -08:00
Max Brunsfeld
19b776e74d Fix some errors caught by clang static analyzer 2016-01-15 13:33:05 -08:00
Max Brunsfeld
04afda2e66 Drop extensions from script filenames 2016-01-15 13:01:19 -08:00
Max Brunsfeld
7dfb1dbdf6 Restore default value of USE_BOOST_REGEX build option 2016-01-15 11:53:30 -08:00
Max Brunsfeld
3bc7045e05 Fix fixtures path in fetch_languages script 2016-01-15 11:46:13 -08:00
Max Brunsfeld
90cbd61280 Adjust static library path on linux 2016-01-15 11:40:46 -08:00
Max Brunsfeld
9cc24f3e28 Make test script fail properly 2016-01-15 11:35:35 -08:00
Max Brunsfeld
d6ed783c8c Improve error handling when dynamically loading languages in specs 2016-01-15 11:35:22 -08:00
Max Brunsfeld
eef1ae17a0 Restore USE_BOOST_REGEX build option for specs 2016-01-15 11:30:32 -08:00
Max Brunsfeld
8ec0e3f43e Link to libld in specs 2016-01-15 11:29:17 -08:00
Max Brunsfeld
aaa77d69ec Merge pull request #23 from maxbrunsfeld/cleaner-integration-tests
Make it easier to write integration tests
2016-01-15 11:23:39 -08:00
Max Brunsfeld
0f7dbea9a3 Unify test targets, use externally defined languages as fixtures 2016-01-15 11:19:24 -08:00
Max Brunsfeld
569b9d4099 Allow comments within grammar JSON 2016-01-14 11:28:13 -08:00
Max Brunsfeld
ad4089a4bf Move anonymous tokens grammar into integration spec 2016-01-14 10:35:03 -08:00
Max Brunsfeld
bc56729b8b Fix JSON syntax error in README grammar 2016-01-14 10:17:37 -08:00
Max Brunsfeld
4a5deda071 Add tests that compile a grammar and use its parser 2016-01-14 10:11:30 -08:00
Max Brunsfeld
49f393b75e Merge pull request #22 from maxbrunsfeld/c-compiler-api
Simplify the compiler API
2016-01-13 21:08:41 -08:00
Max Brunsfeld
7121689cfe Update README to reflect new compiler API 2016-01-13 20:52:58 -08:00
Max Brunsfeld
96dd5c820e Add JSON schema for grammar format 2016-01-13 20:52:35 -08:00
Max Brunsfeld
1142e05873 Copy lookahead state to the stack before pushing it to the vector
Valgrind caught this. If the vector needs to grow, the original pointer will
become invalid when the buffer is realloc'd
2016-01-13 13:49:32 -08:00
Max Brunsfeld
d4632ab9a9 Make the compile function plain C and take a JSON grammar 2016-01-11 12:33:48 -08:00
Max Brunsfeld
b69e19c525 Add plain C API for compiling a JSON grammar 2016-01-10 13:44:22 -08:00
Max Brunsfeld
36870bfced Make Grammar a simple struct 2016-01-08 15:51:30 -08:00
Max Brunsfeld
e59f6294cb Fix bug in lexical state de-duping 2015-12-30 11:15:36 -08:00
Max Brunsfeld
4b04afac5e Control lexer's error-mode via explicit boolean argument
Previously, the lexer would operate in error-mode (ignoring any garbage input
until it found a valid token) if it was invoked in the 'error' state. Now that
the error state is deduped with other lexical states, the lexer might be invoked
in that state even when error-mode is not intended. This adds a third argument
to `ts_lex` that explicitly sets the error-mode.

This bug was unlikely to occur in any real grammars, but it caused the
node-tree-sitter-compiler test suite to fail for some grammars with only one
rule.
2015-12-30 09:43:12 -08:00
Max Brunsfeld
4ad1a666be clang-format 2015-12-29 21:17:31 -08:00