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

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