Changes for version 6.0.17 - 2022-05-01
- Jean-Damien Durand <jeandamiendurand@free.fr>
- Version 6.0.17
- YAML t+ [ci skip]
- src/marpaESLIF.c: :sol cannot be if :eof is set [ci skip]
- src/marpaESLIF.c: Add missing trace macros in marpaESLIFRecognizer_symbol_tryb() [ci skip]
- t+ [ci skip]
- src/marpaESLIF.c: New macro MARPAESLIFRECOGNIZER_IS_INTERACTIVE(marpaESLIFRecognizerp) [ci skip]
- Recognizer proxy logger [ci skip]
- Fix warnings and genericLoggerp propagation [ci skip]
- Fix warnings [ci skip]
- dev+ lexemeModeb, parentLinel and parentColumnl [ci skip]
- dev+ [ci skip]
- test/yamlGrammar.c: more debug prints [ci skip]
- Fix sharev v.s. linel/columnl [ci skip]
- src/marpaESLIFLua.c: Compliance with old compilers [ci skip]
- bindings/README.pod: Cosmetic fix
- src/marpaESLIF.c: In _marpaESLIF_eslif2hostb(), silent -Wswitch when we abuse the marpaESLIFValueResultWorkp-->type enum [ci skip]
- Fix last discard loop, added missing propagation of defaultSymbolActionp and symbolActionp in bootstrap grammar clone [ci skip]
- t/test.t: Fix test [ci skip]
- src/marpaESLIF.c: :eol and :sol v.s. charconvb fixes, memory leak fixed in name and discard try [ci skip]
- test/marpaESLIFTester.c: Better handle events before first read [ci skip]
- src/marpaESLIF.c: Fix when this is a lookahead, matchedLengthl is always 0 [ci skip]
- test/jsonTester.c: Prevent traces at the very beginning [ci skip]
- src/marpaESLIF.c: In _marpaESLIFGrammar_bootstrap_transferb(), fix propagation of luascript. Add missing calls to MARPAESLIF_UNLIKELY() [ci skip]
- src/bootstrap.c: Fix _marpaESLIF_bootstrap_G1_action_luascript_statementb() [ci skip]
- src/marpaESLIF.c: Fix last discard loop [ci skip]
- src/marpaESLIF.c: In _marpaESLIFRecognizer_errorv(), restore initial log indices [ci skip]
- src/bootstrap.c: Renamed _marpaESLIF_bootstrap_find_terminal_by_nameb() to _marpaESLIF_bootstrap_find_terminal_by_namep() [ci skip]
- In _marpaESLIF_grammar_bootstrap_clonep, fix missing eventual name overwrite of a symbol [ci skip]
- Removed some gcc warnings [ci skip]
- Fix fault at free() in bootstrap [ci skip]
- :empty pseudo terminal [ci skip]
- Debug [ci skip]
- Internal renamings [ci skip]
- grammarp->startp new member [ci skip]
- src/marpaESLIF.c: bootstrap clone [ci skip]
- src/marpaESLIF.c: Fix a memory leak, bootstrap grammar clonep preparation [ci skip]
- yaml t+ [ci skip]
- src/marpaESLIF.c: Work on action generator [ci skip]
- Fix regression on <bracketed name string> [ci skip]
- src/marpaESLIF.c: Work on generated action [ci skip]
- Work on generated rhs that are not "standalone" [ci skip]
- generator callback work [ci skip]
- src/marpaESLIF.c: Fixed potential use of uninitilalized variable [ci skip]
- Version 6.0.16
- test/jsonTesterStrictExternal.h: Cosmetic lua action changes [ci skip]
- test/jsonTesterStrictExternal.h: Playing with priority [ci skip]
- lookahead optimization when it consist of a single terminal [ci skip]
- src/marpaELIF.c: dev+ [ci skip]
- Use predicted failures in _marpaESLIFRecognizer_resume_oneb-) [ci skip]
- In _marpaESLIFRecognizer_resume_oneb(): Use a symbolpp array, slightly faster that reindexing symbolArraypp[iteratorl] [ci skip]
- src/marpaESLIF.c: Removed a call to abort() left previously for debugging [ci skip]
- Use only accessible grammar terminals when scanning [ci skip]
- Internal renamings in grammar and meta structures [ci skip]
- Removed unused terminalIdArrayp [ci skip]
- src/marpaESLIF.c: Use _marpaESLIFRecognizer_expectedTerminals_yieldb()
- ci skip
- src/marpaESLIF.c: In _marpaESLIFRecognizer_resume_oneb() move the test on number of symbols inside the test on matchedd symbols [ci skip]
- dev+ and bypass GENERICSTACK_RESET that is forgetting to call GENERICSTACK_INIT [ci skip]
- src/marpaESLIFLua.c: marpaESLIFLua_lua_seti() and marpaESLIFLua_metatypeb() fixes [ci skip]
- src/marpaESLIFLua.c: Added missing marpaESLIFLua_lua_assertstack() in marpaESLIFLua_luaL_getmetafield() [ci skip]
- lua: pre-reference most accessed globals [ci skip]
- src/marpaESLIF.c: In _marpaESLIFRecognizer_symbol_matcherb() take terminalp early instead of symbolp->u.terminalp [ci skip]
- src/marpaESLIF.c: Fix *funcs in _marpaESLIFRecognizer_expectedTerminals_notpristine_oneb() [ci skip]
- perl/dist.ini: Add -DNDEBUG
- src/marpaESLIF.c: work on limiting number of instructions/calls [ci skip]
- Work on symbol priority [ci skip]
- src/marpaESLIF.c: Add symbol priority in internal trace [ci skip]
- Removed historical and not-used passthrough code ctd
- Removed historical and not-used passthrough code
- src/marpaESLIF.c: Removed unnecessary instructions
- src/marpaESLIF.c: In _marpaESLIF_symbol_action___transferb() avoid calls to malloc
- src/marpESLIF.c: Removed unnecessary instructions in _marpaESLIFRecognizer_symbol_matcherb() [ci skip]
- Apply same optimization on rule internal find [ci skip]
- src/marpaESLIF.c: Fix comment [ci skip]
- src/marpaESLIFLua.c: Fix marpaESLIFLua_push_objectb() prototype [ci skip]
- Version 6.0.15
- src/marpaESLIF.c: Fix the hideseparator hook in _marpaESLIF_rule_action___rowb and _marpaESLIF_rule_action___tableb
- ESLIF/RegexCallout.pm: Use $_[0] for faster access to this "internal" class
- src/marpaESLIFLua.c: Fix calls to marpaESLIFLua_luaL_errorf
- External symbol uses its dedidated importer
- Lookup predicted failures for non-UTF anchored regexes
- src/marpaESLIF.c: Remove few unneeded instructions
- Version 6.0.14
- Try to limit instructions in _marpaESLIFRecognizer_terminal_matcherb
- Avoid unneeded internal memcpys
- test fixes [ci skip]
- Tiny revisit of _marpaESLIFRecognizer_terminal_matcherb [ci skip]
- src/marpaESLIF.c: Removed a non-needed call to pcre2_set_callout [ci skip]
- Merge commit 'e8f20d6f4d5bb82b3bf1fd3060bd441bff2bafbe'
- Squashed '3rdparty/github/tconv/' changes from bf51db9d..6bc4e98a
- src/marpaESLIF.c: Work on limiting the number of instructions in _marpaESLIFRecognizer_resume_oneb() [ci skip]
- src/marpESLIF.c: try to limit calls to memcmp [ci skip]
- README.pod: Fix typo "PCRE2_UTF82" => "PCRE2_UTF" [ci skip]
- README.pod: Fix type "In such ca case" => "In such a case" [ci skip]
- src/marpaESLIFLua.c: lua_createtable calls fixes (confusion between narr and nrec) [ci skip]
- src/marpaESLIF.c: In _marpaESLIFRecognizer_expectedTerminalsb avoid a jump by reverting if to the most probable case
- src/marpaESLIF.c: In _marpaESLIFRecognizer_symbol_matcherb() add a MARPAESLIF_LIKELY()
- src/marpaESLIF.c: Limit the number of calls to malloc()/free() via genericStacj in the marpaESLIFValue structure
- src/marpaESLIF.c: Fix potential uninitialized values
- Revert "src/marpESLIF.c: Avoid unnecessary instructions in _marpaESLIFRecognizer_terminal_matcherb() [ci skip]"
- src/marpaESLIFLua.c: inline promotion when possible
- Minimize luaunpanic internal setjmp overhead by selecting which calls are candidate for luaunpanic
- src/marpESLIF.c: Avoid unnecessary instructions in _marpaESLIFRecognizer_terminal_matcherb() [ci skip]
- src/bootstrap.c: Tiny optimization [ci skip]
- Version 6.0.13
- Revert "src/marpaESLIF.c: Prefer single call to marpaWrapperRecognizer_expectedb() instead of a loop on marpaWrapperRecognizer_isExpectedb()"
- src/marpaESLIF.c: Prefer single call to marpaWrapperRecognizer_expectedb() instead of a loop on marpaWrapperRecognizer_isExpectedb()
- Version 6.0.12
- add haveUndefb in the importers
- Revert "src/marpaESLIFLua.c: no need of lua_seti in out internal data - use lua_rawseti instead [ci skip]"
- src/marpaESLIFLua.c: no need of lua_seti in out internal data - use lua_rawseti instead [ci skip]
- Optimizations dev+ [ci skip]
- Add test/allluacallbacks.c
- Back temporarly to lua new states, use lua_call instead of lua_pcall, restored lua stack check [ci skip]
- src/lua.c: _marpaESLIF_lua_recognizerlua_newp renamed to _marpaESLIF_lua_recognizer_newp [ci skip]
- src/lua.c: use lua_call instead of lua_pcall (ok because the underlying lua is our luaunpanic ;)) [ci skip]
- src/lua.c: error reporting revisited [ci skip]
- Internal lua renamings [ci skip]
- src/lua.c: Moved a call to lua_settop at its correct place [ci skip]
- src/lua.c: Prefer the macros in this source file [ci skip]
- Back to one lua main state per grammar, removed unnecessary calls to luaL_checkstack [ci skip]
- Version 6.0.11
- src/marpaESLIFLua.c: Tentative code marked with MARPAESLIFLUA_IMPORT_DETECT_NIL
- src/marpaESLIFLua.c: Removed unused marpaESLIFLuaRecognizerContextp->calloutTable_r
- Revert "src/marpaESLIF.c: No fetch of grammar events and the recognizer has noeventb set"
- Revert "src/marpaESLIF.c: No fetch of grammar events and the recognizer has noeventb set - reformatting"
- src/marpaESLIF.c: No fetch of grammar events and the recognizer has noeventb set - reformatting
- src/marpaESLIF.c: No fetch of grammar events and the recognizer has noeventb set
- src/lua.c: Revisit macros [ci skip]
- Version 6.0.10
- perl/ESLIF.xs: Issue with stash that should not be freed
- Version 6.0.9
- perl/ESLIF.xs: newSv(0) instead of &PL_sv_undef when storing in AV or HV
- perl/ESLIF.xs: Removed some unused variables
- perl/ESLIF.xs: Fix previous commit -;
- CMakeObjects.PL: try_link for __builtin_expect bix
- CMakeObjects.PL: try_link for __builtin_expect
- Merge commit '0f2bd8ea0714557a4fa6362b2bc58705701b2e28'
- Squashed '3rdparty/github/marpaWrapper/' changes from d133cc6b..a7a6c7ea
- Merge commit 'f55b80ffac28d35ecd9a776a72b01d30a4c90b94'
- Squashed '3rdparty/github/tconv/' changes from 02ca365f..bf51db9d
- Merge commit '6acd67c60d45aca8f36bc9f3bff22e287d6d03e6'
- Squashed '3rdparty/github/genericHash/' changes from 6f36155c..ef66a0cc
- Merge commit '3e098edc43c5323d2e5c4c1ae4e9b371b991390b'
- Squashed '3rdparty/github/genericLogger/' changes from 633accf8..3312f127
- gh actions t+
- gh actions, _marpaESLIF_inlined_ptrhashi for 64bits warning fix
- gh action t+
- README.pod: Remove travis-ci
- src/marpaESLIFLua.c: Fix compilation for old cls
- Fix some unreferenced local variables
- .appveyor.yml: Visual Studio 2022 dev+
- .appveyor.yml: Add Visual Studio 2022 bis
- .appveyor.yml: Update doc and add Visual Studio 2022
- src/marpaESLIF.c: Fixed a ;; that causes old cl to fail
- API/README.pod: POD fixes
- include/marpaESLIF.h: Fix duplicate typedef definition
- perl/dist.ini: Try to enable -Werror for version of gcc that do not yell on -qstrict
- Version 6.0.8
- Fix traces
- src/marpaESLIFLua.c: Fix warning detected by cl
- Version 6.0.7
- src/json.c: Tiny optimization on order in a || test
- marpaESLIFRecognizer_symbol_tryb is using recognizers importer, marpaESLIFSymbol_tryb is using symbols importer
- Version 6.0.6
- perl/ESLIF.xs: Optimize calls to setRecognizer
- src/marpaESLIFLua.c: Optimizer calls to setRecognizer
- test/marpaESLIFLuaTest.lua: Log calls to setRecognizer and getRecognizer
- perl/ESLIF.xs: Use marpaESLIFPerl_arraycopyp() also for string containers
- t/test.t: Fix lua_regexAction
- test/jsonTesterLua.c: Back to normal ::concat for *chars ::= filled
- test/marpaESLIFLuaTest.lua: Fix a log
- perl/ESLIF.xs: Avoid copying data in recognizer callbacks
- lua: arraycopy t+
- test/selfTester.c: event-action fix, marpaESLIFRecognizer:input() now returns an xstring
- test/jsonTesterLua.c: Revert the changes after the fix done by previous commit
- src/marpaESLIFLua.c: fix logic with arraycopy
- Lua: xstring fixes
- src/marpaESLIF.c: _marpaESLIF_cleanup_sorti fix
- Lua: Cache a dummy regex callback object to make sure that strings used as keys are never garbage collected
- src/marpaESLIFLua.c: Internal renamings
- dev+
- API/README.pod: Documentation of regex callout, on strings and arrays lifetime
- When cleanup pointers, use a sorted stack instead of a hash
- bootstrap optimization
- Internal management of hiden separator instead of relying on the automatic stack switches
- BNF/README.pod: Document that hide-separator and (-...-) have a cost
- src/marpaESLIF.c: Use stack switch instead of internal copy when processing hiden (- ... -) stack indices
- test/jsonTester.c: Dump external JSON grammar
- src/marpaESLIF.c: Use GENERICSTACK_SWITCH when hiding separator stack indices
- test/jsonTester.c: Factorize parsing function to ease profiling
- JSON tests using an external grammar
- src/marpaESLIF.c: Work on stack debug
- src/bootstrap.c: Fix compilation issue when #undef MARPAESLIF_NTRACE
- perl/ESLIF.xs: av_extend and hv_ksplit
- perl/ESLIF.xs: Use av_extend before filling the AV bis - missing parenthesis after the SSize_t cast
- perl/ESLIF.xs: Use av_extend before filling the AV
- Set discard-is-fallback for internal grammars (ESLIF, JSON strict, JSON extended)
- discard-is-fallback doc and test
- discard-is-fallback grammar adverb
- Version 6.0.5
- No need to reinject marpaESLIFRecognizerp when we previously injected the same in Lua
- Removed marpaESLIFLuaSymbolContextp that appears to not be needed
- src/marpaESLIF.c: Add missing symbolp->marpaESLIFLuaSymbolContextp initialization
- Symbol import should always use its userDatavp/importer setting, even when used in a recognizer context
- Version 6.0.4-TRIAL
- perl/ESLIF.xs: Missing av_push in marpaESLIFPerl_recognizerRegexCallbackb
- Version 6.0.3-TRIAL
- Added missing interface to marpaESLIFRecognizer_discardb()
- src/marpaESLIf.c: search symbol in silent mode if there is an explicit trace after the call in cas of failure
- Version 6.0.2-TRIAL
- test/selfTester.c: Fix tests
- lua: case of embedded functions in the embedded grammars: then marpaESLIFRecognizer is available through a global. Finally, test the existence of setRecognizer everytime
- lua: Injection of recognizer in recognizer interface dev+
- java: Optimize the calls to setEslifRecognizer in the recognizer interface, make sure that all actions that run in the recognizer interface (event-action, if-action, regex-action, generator-action) have an update if needed of the shallow recognizer instance
- java: Restored all tests
- java: injection of shallow recognizer instance in the recognizer interface for the callbacks
- java: Add missing generatorAction in ESLIFGrammarSymbolProperties
- perl: Add generatorAction in symbol properties, change verbose from 1/0 to yes/no
- Back to a global regex-action in :default t+
- Back to a global regex-action in :default
- Work on structure, introducing effective actions
- API/README.pod: Say that for external symbols, the stringp in argument is the thing inside the delimiters
- internal/json.h: Added missing file
- marpa/AppThread.java: Reduce range of a test on input()
- java: fix explicit call to logger in jniInput(), prepare for shallow recognizer instance
- Java & recognizer in the interface dev+
- Java renamings and ESLIFRecognizerInterface new methods for callbacks dev+
- Support of explicit regex-action in :symbol rule
- test/selfTester.c: fix test on discard event
- test/selfTester.c: t+
- cache regexAction in terminalp for performance
- perl: Access to recognizer instance in the recognizer callbacks that are in the interface namespace...
- src/marpaESLIF.c: Prevent regex callbacks if not in the top-recognizer
- internal/structures.h: Say explicitely that the marpaESLIFRecognizerTopp is only for lua (because the lua VM is created and owned only the top-level recognizer. We want to remember it for performance reasons)
- src/marpaESLIF.c: Prevent recognizer callbacks anytime it is not the top-level recognizer, including discard (that is sometimes executed under the top recognizer in case of "fast" discard...) - Implemented helper macros MARPAESLIFRECOGNIZER_IS_TOP() and MARPAESLIFRECOGNIZER_IS_CHILD()
- test/*.c: Fix missing initializations and added a callback (that would SEGV if executed) in adventTester.c
- perl: backward compatiliby with version 5
- perl/ESLIF.xs: marpaESLIFPerl_importb() optimization
- Revert "utf82ord optimization"
- utf82ord optimization
- Optimization of pcre2 contexts
- Add grammar_level and symbol_id in regex callouts
- test/selfTester.c: Fix test (name adverb in not allowed on meta symbols)
- src/bootstrap.c: Improve logging in __marpaESLIF_bootstrap_G1_action_symbol_ruleb
- In all binding language, add offset parameter and optionel length parameter on the interface to marpaESLIFRecognizer_input(), because we cannot affort to always copy the full itnernal buffer to host engine every time
- src/json.c: Emit error if the loop on recognizer did not bring us to the err label
- src/marpaESLIF.c: If grammar exhaustion is an error, log the recognizer state
- src/marpaESLIF.c: In _marpaESLIFRecognizer_alternative_and_valueb, change a little the error message
- src/marpaESLIF.c: When an alternative fails, log the full recognizer state in error
- src/marpaESLIF.c: _marpaESLIF_numberb can modify input in place. When that happens keep a copy of original and restore it at method return
- perl/ESLIF.xs: Clean some unused variables
- Restrict name adverb to terminals, make sure it is unique, support $name notation in rhs primary
- BNF/README.pod: Fix missing <symbol rule>
- BNF/README.pod: Add missing <symbol rule>
- JSON external symbols dev+
- Make _marpaESLIFRecognizer_discardb available to internal API with the external prototype
- Tutorial/Calculator.pod: Update
- Global deprecation of :lexeme and :terminal in favour of :symbol
- BNF/README.pod: Update section on naming
- Version 6.0.1 (trial)
- Version 6.0.0 (trial)
- t/json.t: Some more tests from JSON Parsing Test Suite (c)
- src/json.c: Fix MARPAESLIFJSON_DQUOTE constant
- src/json.c: Fix \\r and \\n inversion
- Changed marpaESLIF_numberb() prototype, fixed regex callout usage callback and UTF-16 to UTF-8 transformation
- perl/ESLIF.xs: Fixed a comment
- etc/callout_inspect.pl: Helper to understand PCRE2 callouts
- src/json*.c: Use regex callbacks instead of symbol events
- src/marpaESLIF.c: Fix symbol display in _marpaESLIFRecognizer_errorv
- include/marpaESLIF.h: More info for developpers using marpaESLIFCalloutBlock_t
- API/README.pod: Fix
- src/marpaESLIF.c: _marpaESLIFGrammar_symbolDescriptionCallback fix
- Some more internal versions (no need of extra checks reserved to the case where it is an external API call)
- src/json*.c: Removed lexemes from the grammar
- Tutorial/propositionalLogic: Fix
- Calculator/Calculator.sh: Fix
- A complete revisit of the API, opening implicitly terminals into the interface
- Open name adverb to :lexeme and :terminal rules
- Renamed lexeme data to symbol data
- src/marpaESLIF.c: Add marpaESLIF_symbol_type_t argument to _marpaESLIF_symbol_findp()
- src/json.c: Fixed y_structure_capitalized_True test
- src/json.c: Reduce structures
- src/json*.c: Renamed DQUOTE to dquote
- t/json.t: Restored some tests removed by previous commit
- src/json.c: ROW and TABLE containers must be initialized for proper export
- JSON callbacks during recognition uses the recognizer context
- src/json.c: Fix propagation of final value
- t/json.t: Removed unfortunate read of STDIN introduced for debugging locally...
- src/json.c: Setted MARPAESLIF_UNLIKELY() macro where relevant
- src/json*.c: Merged CNTRL_CHAR into CHAR lexeme
- src/json*.c: Replaced the CNTRL_CHAR lexeme by an explicit terminal
- src/json*.c: Merged number and constant in the same lexeme
- src/json*.c: Removed the DQUOTE_START and DQUOTE_END lexemes
- src/json.c: Fix memory leak
- src/marpaESLIF.c: Fix again last commit...
- src/marpaESLIF.c: Recomment a statement uncommended and commited by error
- src/json.c: dev+
- internal/logging.h: Fix macros when #ifndef MARPAESLIF_NTRACE
- Merge commit 'e6492742a76d5f2e621e9fb26b35861b024d0433' into json_optimization_v2
- Squashed '3rdparty/github/tconv/' changes from cda1cb9d..02ca365f
- Fix includes of json grammars
- JSON optimization using recognizer only dev+
- src/marpaESLIF.c: Make _marpaESLIFRecognizer_lexeme_readb truely internal
- Fix internal logging macros (bis)
- Fix internal logging macros
- API/README.pod: update
- src/marpaESLIF.c: Rework of exhaustion event - ESLIF extends native marpa exhaustion to this case: if during scan/resume no alternative is found but last progress shows start symbol completion (typical case of a start symbol that is a sequence for example)
- Fix last discard loop v.s. events and internalize some methods needed for the next JSON parser
- src/marpaESLIF.c: In _marpaESLIFRecognizer_lexeme_completeb, push ESLIF events before fetching grammar events
- t/test.c: Test of inputLength(), input() and error()
- inputLength, error binding interfaces, marpaESLIFRecognizer_lexeme_expectedb fix
- New method marpaESLIFRecognizer_errorb
- Allow resume to be called, even if scan was not called, when at least one lexeme alternative was pushed
- When recognizer forced an exhaustion event, make sure it is not removed by upper layer that realise that this is a fake event by asking diretly marpa
- t/advent.t: Fix logging
- src/json.c: Renamed internal pause after events from xxx[] to xxx$
- src/marpaESLIF.c: Fixed issue with initial events at scan() call and when there are also predicted lexemes
- src/marpaESLIF.c: Prevent propagating a tconvp that failed if needed needed, and stay silent in lexeme mode when appending data
- src/marpaESLIF.c: micro optimization in _marpaESLIFRecognizer_terminal_matcherb
- marpaESLIF_internal_symbol_action dev+
- marpaESLIF_internal_rule_action_t dev+
- marpaESLIF_internal_event_action dev+
- Optimizations dev+
- Removed non needed internal _marpaESLIFValueResultAfterStack
- src/json.c: Bug fix when shallowing entries
- Squashed '3rdparty/github/genericStack/' changes from b47da89f..35e49cdc
- Merge commit 'fd81a35452728b9b61961dea43b68ac38f2bfd9b'
- src/json.c: #9 - Tiny optimization replacing if/else/elsef if with a switch
- In _marpaESLIFRecognizer_terminal_matcherb, having a parent recognizer is much more likely to happen than being at eof
- In _marpaESLIFRecognizer_internalStack_i_setb(), stop pretending we are better than the compiler ;)
- #9: Avoid hash table lookup when possible
- #9: Round 2 - Removed an unnecessary costly memcpy in the very central method _marpaESLIFRecognizer_symbol_matcherb() (revealed by callgrind)
- #9: Round 2 - rearrange structures and use offsetof to suppress unpredictable switch() branch jumps
- #9: removed old comment
- #9: work on optimization - a better version, though still not excellent
- src/marpaESLIF.c: _marpaESLIF_ptrhashi update
- Merge commit 'c20741bc3954d29be405cc835d387b1b53b95894'
- Squashed '3rdparty/github/marpaWrapper/' changes from 82dcfe1f..d133cc6b
- Merge commit '3d8246088d3679594f831ddcaef417f7a1e49fd5'
- Squashed '3rdparty/github/genericHash/' changes from 5ce9852b..6f36155c
- test/jsonTester.c: Eventually parse stdin, usage is: jsonTester[Not]Strict - < file.json
- BNF/README.pod: Add lookahead rules in the BNF
- lookahead doc+ [ci skip]
- Internal flag in grammar to remember if it has a lookahead meta
- README.pod: Removed -DALL_IN_ONE=TRUE from build instructions
- test/marpaESLIFLuaTest.lua: parameterized test t+
- BNF/README.pod: Section on parameterized rules
- README.pod: Mention parameterized rules and dynamic sub-grammars
- src/marpaESLIF.c: Get context before processing the action
- src/bootstrap.c: skip symbol checks when we know we in a dynamic symbol generator context
- Revert "src/bootstrap.c: skip symbol checks when we know a new one will be created anyway"
- src/bootstrap.c: skip symbol checks when we know a new one will be created anyway
- test/marpaESLIFLuaTest.lua: Fix parameterized test
- t/parameterizedRules.t: Fix
- src/bootstrap.c: Fixed a bootstrapLhsp memory leak
- BNF/README.pod: <symbol> should be <lhs> in event declarations
- src/bootstrap.c: Removed a shallow pointer, this is also fixes a SEGV
- src/bootstrap.c: Removed old symbolShallowp confusing variable, fixed some calls to check_meta
- src/bootstrap.c: bug shown when separatorcallp is uncommented dev+
- src/*.c: Fix some errors founds by gcc -Wall
- src/marpaESLIFLua.c: Lua 5.2 compat for lua_isinteger
- marpa/AppParse.java: Enable all tests
- t/test.t: Fix
- test/parameterizedTester.c: Fix
- With java, it is recommended to explicitely type lua string as sequence of characters for interoperability else java will see a sequence of bytes, not a string
- test/parameterizedTester.c: generator callback in C t+
- bindings/README.pod: Give a hint how to create a true Lua string object for language interoperability using ESLIF
- src/marpaESLIFLua.c: Fix typos in comments
- bindings/README.pod: Fix typo
- test/marpaESLIFTester.c: Fix condition
- Java and generator callback dev+
- test/*c: t+
- test/parameterizedTester.c: t+
- t/parameterizedRules.t: t+
- t/parameterizedRules.t: use lexeme in dynamic grammar
- Move lexemeGrammarHash to marpaESLIFGrammar
- In _marpaESLIFRecognizer_meta_matcherb(), initialize generatedValueResult.u.s before passing it
- marpaESLIFPerl_recognizerGeneratorCallbackb update: use marpaESLIFPerl_sv2byte() explicitely
- perl/ESLIF.xs: generator action
- In marpaESLIFLua_generatorCallbackb(), nargs is a size_t
- Use our coding convention for err/done etc
- Encoding test
- Fix and use of the MARPAESLIFLUA_STRING_ENCODINGS() macro
- BNF/README.pod: Add missing <lua functioncall> after <generation action> in <rhs primary> rule
- Cache generated lexeme grammars in the top recognizer [ci skip]
- Lexeme to grammar dev+ [ci skip]
- Make all context operations internal
- Merge commit '4a07d2940c83befd32d1ccf4ba21a8803e45b7cb' into lua_external_symbol
- Squashed '3rdparty/github/luaunpanic/' changes from 2ea5626d..78f5dd04
- Send arguments to generator callback [ci skip]
- Squashed '3rdparty/github/luaunpanic/' changes from 1c69b6f8..2ea5626d
- Merge commit '344d2c1dc011f35181f97636b0e1e2d91e324af0' into lua_external_symbol [ci skip]
- luaunpanic subtree update impact [ci skip]
- git_subtree_pull.zsh should work on current branch when doing hard reset
- ci skip
- Merge commit 'e7ed60aee1d36a55f6eeaafa27f52cca9ab89eab' into lua_external_symbol [ci skip]
- Squashed '3rdparty/github/luaunpanic/' changes from fd2baa3e..1c69b6f8
- Merge commit '73ffb7a1cf9106f85895af6476f52bb244278e02' into lua_external_symbol [ci skip]
- Squashed '3rdparty/github/marpaWrapper/' changes from 9ea206a5..82dcfe1f
- Fix external marpaESLIFRecognizer_contextb -> marpaESLIFRecognizer_context_getp [ci skip]
- generator action dev+ [ci skip]
- CMakeLists.txt fix [ci skip]
- Back to terminals that cannot be parameterized [ci skip]
- Fix printout of grammar, starting allowing parameterized terminals for templating [ci skip]
- lua template engine dev+ [ci skip]
- Squashed '3rdparty/github/lua-template-engine/' content from commit 2a0d6a9f
- Merge commit '9b80fe534b221fc9ae2b2faa702780913d40f210' as '3rdparty/github/lua-template-engine'
- Protect recognizer calls when in a sub-recognizer [ci skip]
- test/parameterizedTester.c
- perl/ESLIF.xs: Fix an indentation
- Alleviate exception statement restrictions
- test/yamlTester.c t+ [ci skip]
- test/yamlTester.c: t+ [ci skip]
- yamlTester dev+ [ci skip]
- test/selfTester.c: back to original grammar [ci skip]
- Replaced paramb by marpaESLIFValueResultForcedValuationp [ci skip]
- Unused variables cleanup [ci skip]
- Removed context from generator-callback parameters, it can be retreived using the recognizer [ci skip]
- Fix symbol dump [ci skip]
- dev+ Fix memory leak when propagating context to sub-recognizers [ci skip]
- symbol generator dev+ [ci skip]
- Propagate context to sub-recognizers [ci skip]
- Back to internal event [ci skip]
- src/bootstrap.c: Fixed an error text [ci skip]
- src/marpaESLIF.c: dev+ [ci skip]
- src/bootstrap.c: Make sure terminals are not parameterized [ci skip]
- lua: niledtablek constructor [ci skip]
- Renamed lexemeInputStack to lexemeStack [ci skip]
- Fixed potential memory leak when freeing lexemeInputStack
- t/test.t: Fix top attribute (plain wrong since the beginning)
- src/marpaESLIF.c: Restored the top attribute [ci skip]
- test/marpaESLIFLuaTest.lua: Update [ci skip]
- t/jsonWithSharedStream.t: Update
- src/bindings/*: Update [ci skip]
- src/marpaESLIF.c: Fix MARPAESLIF_MAKE_MARPAESLIFVALUERESULTP_SHALLOW() macro [ci skip]
- src/marpaESLIF.c: Removed marpaESLIFValueResultParameterizedp notion [ci skip]
- src/marpaESLIF.c: Removed unneeded test on symbolp->type [ci skip]
- src/marpaESLIF.c: fast_done version in marpaESLIFValue_valueb() [ci skip]
- src/marpaESLIF.c: make proxy rule explicitely as internal [ci skip]
- Fix symbol creation when it is referenced symbol [ci skip]
- Lexeme event is not allowed on parameterized rhs [ci skip]
- Suppress exceptioncallp, changed int rhsi to size_t rhsl [ci skip]
- Renamed MARPAESLIF_MAKE_MARPAESLIFVALUERESULT_SHALLOWP macro to MARPAESLIF_MAKE_MARPAESLIFVALUERESULTP_SHALLOW [ci skip]
- Reserve parameters to lexemes [ci skip]
- Back to RHS terminal [ci skip]
- Use internal rule for context transition [ci skip]
- src/marpaESLIF.c: Make sure runtime variable are reset at retry [ci skip]
- src/marpaESLIF.c: Move lua precompilation at the beginning of grammar validation, otherwise lexeme symbols will not inherit <luascript> [ci skip]
- Try another model using true lexmes for parameterized symbols [ci skip]
- Work on internal neightbour symbols v.s. stack and events [ci skip]
- Removed context-action [ci skip]
- context-action [ci skip]
- Prepare context-action [ci skip]
- Fix some includes and prepare for lua context call [ci skip]
- src/marpaESLIF.c: MARPAESLIF_SYMBOL_CREATESHOW() for neighbour meta [ci skip]
- test/marpaESLIFTester.c: Fix
- Update perl interface
- src/bootstrap.c: Fix unitialized variables [ci skip]
- Number of expressions [ci skip]
- Number of parameters [ci skip]
- test/selfTester.c: Removed a debug call [ci skip]
- Handle exception and separator symbols [ci skip]
- BNF/README.pod: Cosmetic alignment fix [ci skip]
- start symbol and more dev+ [ci skip]
- functiondecl dev+ [ci skip]
- t/test.c: Fix [ci skip]
- C++ comment :discard update [ci skip]
- src/marpaESLIF.c: grammar show fixes
- eslif/G1.h: :discard update
- BNF/README.pod: Cosmetic spaces again [ci skip]
- BNF/README.pod: Added a space in some rules for readibilty [ci skip]
- BNF/README.pod: :discard rule update [ci skip]
- BNF/README.pod: Removed \\z from self grammar [ci skip]
- BNF/README.pod: Self grammar update bis [ci skip]
- BNF/README.pod: Self grammar update [ci skip]
- perl/dist.ini: Cosmetic changes [ci skip]
- src/lua.c: <lua optional parlist> fix [ci skip]
- Use ::luac->function in the top example and in t/allluacallbacks.t [ci skip]
- README.pod: Mention declarative lua action directly into the grammar [ci skip]
- Support of ::luac->function
- Stop precompiling actions in bootstrap: we trust our grammar, and if we are wrong, lua will yell at runtime
- t/allluacallbacks.t: Add test with lua anonymous functions
- Lua anonymous functions for actions
- Renamed macro MARPAESLIF_HEXDUMPV() to MARPAESLIFRECOGNIZER_HEXDUMPV(), use it when problem scanning a lexeme at bootstrap [ci skip]
- test/selfTester.c: Removed lua grammar (now in src/lua.c) [ci skip]
- verbose adverb list item for lexemes
- src/marpaESLIFLua.c: When running embedded, objects can be either injected, either created in Lua
- src/marpaESLIFLua.c: Indexing of events should start at 1
- BNF/README.pod: lua:: should read ::lua [ci skip]
- Lua 5.3 grammar, enable :discard when trying to match a lexeme
- src/bindings/perl/t/jsonWithSharedStream.t: Changed logs from info to debug (output too big for travis)
- t/*t: Changed default log level to INFO (output too big for travis)
- Update self grammar
- src/marpaESLIF.c: Improve self-grammar representation, fix rule show in case of :discard [ci skip]
- Renamed Examples/Lua5.3.txt to Examples/Lua5.3.4.txt
- Examples/Lua5.3.txt: Add [ci skip]
- src/bootstrap.c: Action G1_action_space_concat for future usage [ci skip]
- Revert "src/bootstrap.c: Action G1_action_space_concat for future usage [ci skip]"
- internal/bootstrap.h: Suppressed unused constant MARPAESLIF_BOOTSTRAP_STACK_TYPE_LHS [ci skip]
- src/json.c: Simplified json :discard for maintanabilty
- Revert "src/marpaESLIF.c: Better trace [ci skip]"
- _marpaESLIFRecognizer_resume_oneb: reset alternativeStackSymboli in case of internal retry after successful discard
- src/marpaESLIF.c: Better trace [ci skip]
- _marpaESLIFRecognizer_discardParseb: Fix
- Fix marpaESLIFRecognizer_symbol_tryb for meta symbol
- src/marpaESLIF.c: In _marpaESLIFRecognizer_resume_oneb(), fix a potentially uninitialized variable [ci skip]
- ESLIF/Recognizer.pm: More detail about the newFrom [ci skip]
- java: external meta symbol support
- perl: external meta symbol support
- lua: external meta symbol support and test
- src/marpaESLIF.c: Fix :start show
- src/marpaESLIF.c: Fix _marpaESLIFSymbol_meta_newp
- test/selfTester.c: Fix self grammar and external meta symbol test
- API/README.pod: Fix typo for marpaESLIFRecognizer_discardb
- marpaESLIFRecognizer_peekb() dev+ [ci skip]
- New method marpaESLIFRecognizer_discardb(), fix logic when appending data in internal buffer
- src/marpaESLIFLua.c: Fix comment [ci skip]
- test/marpaESLIFLuaTest.lua: External symbol test [ci skip]
- meta external symbol [ci skip]
- meta external symbol test comment fix [ci skip]
- meta external symbol doc [ci skip]
- test/selfTester.c: t+ [ci skip]
- marpaESLIFSymbolOption_t dev+
- Java: Interface to progress(), latestEarleySetId() and earleme()
- marpa/ESLIFProgress.java: Add [ci skip]
- java/marpaESLIFJava.c: Review the name of all internal structures definitions [ci skip]
- Add progress(), latestEarleySetId() and earleme() interfaces to Lua, remove earlemei and earlemeOrigi from marpaESLIFRecognizerProgress_t [ci skip]
- marpaESLIFRecognizer_latestEarleySetIdb() and marpaESLIFRecognizer_earlemeb() new methods [ci skip]
- marpaESLIFRecognizer_progressb() doc [ci skip]
- perl: MarpaX::ESLIF::Recognizer::progress(start, end) interface [ci skip]
- Add earlemei and earlemeOrigi to progress [ci skip]
- New method marpaESLIFRecognizer_progressb()
- Interface to recognizer context [ci skip]
- marpa/AppJSON.java: Add re-encoding to JSON test
- *stringbp doc [ci skip] dev+
- Add a *stringbp parameter to representation callback
- test/marpaESLIFTester.c: Fix memory leak [ci skip]
- :sol pseudo flag for "Start Of Line"
- test/marpaESLIFTester.c: print current input [ci skip]
- src/bootstrap.c: Bug fix in _marpaESLIF_bootstrap_search_terminal_pseudob [ci skip]
- Merge commit 'f5abce9f71ae14785467bfd03b799e374654c30f'
- Squashed '3rdparty/github/cmake-utils/' changes from 34733e7f..3a9719e5
- Version 5.0.7
- BNF/README.pod: Fix for events [ci skip]
- API/README.pod: Fix [ci skip]
- API/README.pod: Update [ci skip]
- json: avoid a malloc very often not necessary
- src/json.c: Fix lvalue on a realloc
- Version 5.0.6 [ci skip]
- .travis.yml: -DCMAKE_BUILD_TYPE=Release
- .travis.yml: debug
- .travis.yml: asan
- .travis.yml: java under valgrind
- .travis.yml: -DCMAKE_BUILD_TYPE=RelWithDebInfo
- src/json: missing memcpy
- Work on Int, Nan and number helpers
- perl/dist.ini: Fix META for bugtracker [ci skip]
- New method marpaESLIFRecognizer_numberb [ci skip]
- BNF/README.pod: Update ESLIF :discard definition take 2[ci skip]
- BNF/README.pod: Update ESLIF :discard definition [ci skip]
- Version 5.0.5
- t/import_export.t: Better logging
- MarpaX/ESLIF.pm: Put explicit Encode dependency just before the call to XSLoader
- ESLIF/String.pm: Back to an old-style perl mode, this remove runtime dependency on Moo
- perl/ESLIF.xs: Renaming of external dependencies for clarity
- .travis.yml: Changed namespace::autoclean to namespace::clean to hardcoded perl imports for CMakeObjects.PL [ci skip]
- ESLIF/String.pm: use namespace::sweep instead of namespace::autoclean, the later breaking overload
- src/marpaESLIF.c: Fix compilation in trace mode [ci skip]
- Version 5.0.4
- perl/dist.ini: Fix detection of Sun C compiler [ci skip]
- src/bootstrap.c: if-action support on :terminal was missing [ci skip]
- Version 5.0.3
- perl/ESLIF.xs: genericStack internals have changed and conflict again with perl's macro that redefine malloc, realloc, free etc.
- perl/dist.ini: Change bugtracker.rt to bugtracker.github [ci skip]
- Version 5.0.2
- Jeffrey Kegler <jeffreykegler@jeffreykegler.com>
- More typos in README.pod
- Update README.pod
- Jeffrey Kegler <jeffreykegler@protonmail.com>
- Replace "transverse" in docs/comments"
- jddurand <jeandamiendurand@free.fr>
- Create cmake.yml
Documentation
MarpaX::ESLIF's BNF
MarpaX::ESLIF's Bindings
MarpaX::ESLIF's Introduction
MarpaX::ESLIF's logger interface
MarpaX::ESLIF's recognizer interface
MarpaX::ESLIF Calculator Tutorial
MarpaX::ESLIF's value interface
Modules
ESLIF is Extended ScanLess InterFace
ESLIF base
ESLIF Event Types
MarpaX::ESLIF's grammar
ESLIF Grammar Properties
ESLIF Grammar Rule Properties
ESLIF Grammar Symbol Properties
ESLIF's JSON interface
ESLIF's JSON decoder interface
MarpaX::ESLIF::JSON Recognizer Interface
ESLIF's JSON encoder interface
ESLIF Logger levels
MarpaX::ESLIF's recognizer
ESLIF Regex Callout
ESLIF Rule Property Bit Set
ESLIF String is any string value with encoding attribute
MarpaX::ESLIF's symbol
ESLIF Symbol Event Bit Set
ESLIF Symbol Property Bit Set
ESLIF Symbol Type
MarpaX::ESLIF's value
ESLIF Value Types