Changes for version 6.0.1 - 2021-12-05
- Jean-Damien Durand <jeandamiendurand@free.fr>
- 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
- dev+
- 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
- dev+ [ci skip]
- 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
- Squashed '3rdparty/github/luaunpanic/' changes from 2ea5626d..78f5dd04
- Merge commit '4a07d2940c83befd32d1ccf4ba21a8803e45b7cb' into lua_external_symbol
- Send arguments to generator callback [ci skip]
- Merge commit '344d2c1dc011f35181f97636b0e1e2d91e324af0' into lua_external_symbol [ci skip]
- Squashed '3rdparty/github/luaunpanic/' changes from 1c69b6f8..2ea5626d
- luaunpanic subtree update impact [ci skip]
- git_subtree_pull.zsh should work on current branch when doing hard reset
- ci skip
- Squashed '3rdparty/github/luaunpanic/' changes from fd2baa3e..1c69b6f8
- Merge commit 'e7ed60aee1d36a55f6eeaafa27f52cca9ab89eab' into lua_external_symbol [ci skip]
- Squashed '3rdparty/github/marpaWrapper/' changes from 9ea206a5..82dcfe1f
- Merge commit '73ffb7a1cf9106f85895af6476f52bb244278e02' into lua_external_symbol [ci skip]
- 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]
- t+ [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]
- test/selfTester.c: t+
- 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]
- Squashed '3rdparty/github/cmake-utils/' changes from 34733e7f..3a9719e5
- Merge commit 'f5abce9f71ae14785467bfd03b799e374654c30f'
- 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
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