Commit graph

451 commits

Author SHA1 Message Date
Charles Baker
2b55d4e411 Stop crashing when generating parsers that have no lexers 2019-05-18 20:18:54 +12:00
Charles Baker
0ee3d844b5 Update compiled JSON and XML parse tables 2019-05-18 16:01:55 +12:00
Charles Baker
0841bb2d10 Remove commented out code from RegexGenerator.cpp 2019-05-18 16:01:55 +12:00
Charles Baker
0a5c72cbac Minor formatting in RegexGenerator.cpp 2019-05-18 16:01:55 +12:00
Charles Baker
0c089ceda6 Only report RegexToken conflicts once for each conflicting token 2019-05-18 16:01:55 +12:00
Charles Baker
de647111d1 Track which RegexTokens have conflicted with each other 2019-05-18 16:01:55 +12:00
Charles Baker
326c8a97a1 Add Parser<>::lexer() to provide constant access to Lexer for line number 2019-05-18 16:01:55 +12:00
Charles Baker
b1365806ed Print newline in lalr_calculator_example result 2019-05-18 16:01:55 +12:00
Charles Baker
64db205c36 Don't generate parser source if compiling grammar fails 2019-05-18 16:01:54 +12:00
Charles Baker
8e1e3a31ca Return number of errors from GrammarCompiler.compile() 2019-05-18 16:01:54 +12:00
Charles Baker
d6145c2af4 Use lalr_error() to ignore errors in IgnoreParserErrorPolicy 2019-05-18 16:01:54 +12:00
Charles Baker
e55c55a350 Print errors encountered by lalrc 2019-05-18 16:01:54 +12:00
Charles Baker
a31c700eed Enable error symbol on left-hand side of production error test 2019-05-18 16:01:54 +12:00
Charles Baker
48b1d40abd Improve error message on conflicting terminals 2019-05-18 16:01:54 +12:00
Charles Baker
ca018d52e8 Use line of terminal definition for named terminals 2019-05-18 16:01:54 +12:00
Charles Baker
99c5ebce6d Handle error symbol on left side of a production correctly 2019-05-18 16:01:54 +12:00
Charles Baker
7fe832ca4e Remove commented out assert from Grammar 2019-05-18 16:01:54 +12:00
Charles Baker
f3762961ad Add error handling calculator example 2019-05-18 16:01:50 +12:00
Charles Baker
d8896f48eb Ignore /.vscode/ 2019-05-18 16:01:25 +12:00
Charles Baker
ff9212446b Use latest lexer action functions in parser tests 2019-04-23 11:07:33 +12:00
Charles Baker
57720fe5fa Use line number in debugging functions 2019-04-23 11:07:32 +12:00
Charles Baker
95f10fdb38 Track line number at start of lexeme in Lexer 2019-04-23 11:07:28 +12:00
Charles Baker
dc8e436361 Remove mostly unused Parser<>::position() 2019-04-22 19:31:12 +12:00
Charles Baker
658bc53969 Update README.md calculator example to match source code 2019-04-20 20:15:34 +12:00
Charles Baker
ae4ed8104c Remove UserData from ParserNode<> in examples 2019-04-17 20:44:21 +12:00
Charles Baker
1d86f7523b Remove unused UserData and line from ParserNode 2019-04-17 20:43:58 +12:00
Charles Baker
1bfba4722a Use simplified action handlers with separate user data and ParserNodes in examples 2019-04-17 20:36:23 +12:00
Charles Baker
21f8a91b9b Use simplified action function with separate user data and ParserNode 2019-04-17 20:36:05 +12:00
Charles Baker
39f8c383ff Separate user data and lexemes from ParserNode in parsing 2019-04-14 20:50:44 +12:00
Charles Baker
6251d29dc4 Use closures in lalr_calculator_example/ 2019-04-14 20:50:44 +12:00
Charles Baker
ddca19f58c Use closures in lalr_hello_world_example/ 2019-04-14 20:50:44 +12:00
Charles Baker
351d643018 Set unittest-cpp submodule to forge-v0.0.x branch on Github 2019-04-14 20:50:44 +12:00
Charles Baker
ab003e58c0 Bump to use the latest Forge version in .travis.yml 2019-04-03 21:13:05 +13:00
Charles Baker
d0f8843dea Simplify .travis.yml now that Forge is archived using $TRAVIS_OS_NAME 2019-03-31 20:57:51 +13:00
Charles Baker
d62c08f2c3 Add Travis CI build status badge to README.md 2019-03-31 13:28:23 +13:00
Charles Baker
2669a2a890 Move test execution into script section, test section doesn't seem to run 2019-03-31 13:25:14 +13:00
Charles Baker
5ef67d8ffc Build for c++11 on Linux and macOS, c++14 on Windows 2019-03-31 13:23:39 +13:00
Charles Baker
e666993465 Add https://github.com/ to start of URLs to wget forge 2019-03-31 13:21:43 +13:00
Charles Baker
8e1778a3db Use HTTPS instead of GIT in submodule URLs 2019-03-31 13:19:46 +13:00
Charles Baker
201979d917 Initial attempt at .travis.yml 2019-03-31 13:17:52 +13:00
Charles Baker
6e0d03fe9e Add Linux build instructions to README.md 2019-03-18 21:12:00 +13:00
Charles Baker
b15cfccfcf Update to use latest Forge and build scripts 2019-03-18 21:09:51 +13:00
Charles Baker
4908890622 Remove require of now non-existant forge.cc module 2018-09-29 19:34:34 +12:00
Charles Baker
0f937b00e5 Define _CRT_SECURE_NO_WARNINGS in lalrc.cpp to avoid fopen() use warnings 2018-09-29 19:34:03 +12:00
Charles Baker
e54b98ea2d Specify C/C++ macros in top-level forge.lua 2018-09-27 20:19:52 +12:00
Charles Baker
8adb989b4e Require Forge Linux module to enable Linux build 2018-09-26 21:02:56 +12:00
Charles Baker
fb1c862639 Fix warnings about ParserNode changing meaning in ParserUserData 2018-09-26 21:02:32 +12:00
Charles Baker
5fdd5ce4bc Fix warning about && within || in assert in RegexNode 2018-09-26 21:02:02 +12:00
Charles Baker
4a6e5cdd07 Include missing <algorithm> for GCC compilation on Linux 2018-09-26 21:01:36 +12:00
Charles Baker
13820013f7 Include missing <string.h> for GCC compilation on Linux 2018-09-26 21:01:08 +12:00