PeppaPEG Versions Save

PEG Parser in ANSI C

v1.16.0

2 years ago

Code change: https://github.com/soasme/PeppaPEG/compare/v1.15.0..v1.16.0.

  • [API Change]: Rename Shell subcommand peppa ast to peppa parse. #123.
  • [Performance]: Optimize the code to reduce errmsg string printf calls. #122.
  • [Performance]: Optimize the code to reduce frame malloc by keeping unused frame. #121.
  • [Performance]: Optimize the code to reduce backref malloc in sequence matching. #120.
  • [Performance]: Optimize the code to reduce strlen call in literal matching. #119.
  • [Enhancement]: Shell supports reading files from a glob pattern. #118.
  • [Example]: Added Golang grammar written in Peppa PEG Specification. #117.
  • [Bug Fix]: Non-terminal choice should lift the only child. #116.
  • [API Change]: Rename Cut operator to ~. #115 https://github.com/soasme/PeppaPEG/pull/115.
  • [Feature]: Support Left Recursion. #112, #113, #114.

v1.15.0

2 years ago

🐷 🐷 🐷 🐷 🐷 🐷 🐷 🐷 🐷 🐷🐷 🐷 🐷 🐷 🐷 🐷 🐷 🐷 🐷 🎉 Hooray, Peppa PEG v1.15.0 is now released! 🎉 🐷 🐷 🐷 🐷 🐷 🐷 🐷 🐷 🐷 🐷🐷 🐷 🐷 🐷 🐷 🐷 🐷 🐷 🐷

  1. Do you know there is a formal Peppa PEG specification now? Check it out: https://www.soasme.com/PeppaPEG/spec.html.

  2. Back reference is a useful feature for capturing a previously matched string for later use. Check it out: https://www.soasme.com/PeppaPEG/spec.html#back-reference

  3. Have you tried mkdir build && cd build && cmake .. && make && make install? Peppa PEG can now be installed as a shared library and a command-line utility. The utility is helpful when developing a new grammar. Check it out: https://github.com/soasme/PeppaPEG#installation

  4. Want to see more examples? Check this new one: Toml v1.0 specification in Peppa PEG.


Code change: https://github.com/soasme/PeppaPEG/compare/v1.14.0..v1.15.0.

  • [Documentation]: Upgrade Peppa PEG Specification and fixed various bugs. #111.
  • [Tests]: Introduced JSON-based TINOUT-style test specs. #103 #105 #106.
  • [Feature]: New shell command: peppa ast. #102 #104.
  • [Feature]: Install a command-line utility peppa if -DENABLE_CLI=On. #101.
  • [Enhancement]: Support installing shared library to the system via make install. #100.
  • [Feature]: Extend range category to support Unicode Property & General Category. #99.
  • [Example]: Provide an example of Peppa definition of Toml v1.0 specification. #98 #107 #108 #109.
  • [Performance]: Optimize the code to reduce the call frames in runtime. #97.
  • [Feature]: Upgrade insensitive to support both literal and back reference. #96.
  • [Feature]: Support back reference in Peppa specification. #95.
  • [Enhancement]: Improved the error message. #93 #94.
  • [Enhancement]: Support an additional callback for catch_err(). This is internal. #92.
  • [Bug Fix]: Fix the wrong lineno:offset from the error output. #91.

v1.14.0

2 years ago

Code change: https://github.com/soasme/PeppaPEG/compare/v1.13.0..v1.14.0.

  • [Feature]: New PEG expression: @cut. #90.
  • [API Change]: P4_JsonifySourceAst now doesn't require grammar in the parameters. #89.
  • [Enhancement]: Wrap errors with catch_err / catch_oom in the .c implementation. #88 #91 #92.
  • [Bugfix]: Error report now can display correct lineno:offset information. #87.
  • [API Change]: P4_RuleID is now deprecated. Please use string (char*) for finding a rule. #84 #86.
  • [API Change]: struct P4_Grammar, struct P4_Expression, struct P4_Frame are now private structures. However, you can still access P4_Grammar, P4_Expression as typedefs.
  • [Example]: Added a example TOML v1.0 parser. #81.
  • [Feature]: New escape type: \xXX. This allows terser form for ASCII chars. #80.
  • [API Change]: \u{XXXX} is now deprecated. Please use \uXXXX or \UXXXXXXXX. #79.
  • [API Change]: P4_Token is now renamed to P4_Node. #78.

v1.13.0

3 years ago

Code change: https://github.com/soasme/PeppaPEG/compare/v1.12.0..v1.13.0.

[Enhancement]: Explicitly specify the expected rule & the position where error occurs. #70 #71 #72 #74 #75

v1.12.0

3 years ago

Code change: https://github.com/soasme/PeppaPEG/compare/v1.11.0..v1.12.0.

  • [Feature]: Support Comment for PEG Grammar. #69
  • [Feature]: Support Unicode Character Categories for P4_Range. #65, #67

v1.11.0

3 years ago

Code change: https://github.com/soasme/PeppaPEG/compare/v1.10.0..v1.11.0.

[Feature]: Allow setting arbitrary number of @spaced rules. #66 [Feature]: Add P4_AcquireSourceAst. #64 [Example]: Add tutjson page to docs. #63 [Feature]: Add P4_ResetSource. #62 [Feature]: Add P4_InspectSourceAst. #61 [Feature]: Customize malloc/free/realloc. #60

v1.10.0

3 years ago

Code change: https://github.com/soasme/PeppaPEG/compare/v1.9.0..v1.10.0.

[Feature]: Support . (maps to [u{1}-u{10ffff}]). #59 [Example]: Refactor the JSON example to use PEG API. #58 [Feature]: Jsonify token AST using grammar rule name. #57 [Feature]: Added function: P4_LoadGrammar. #56

v1.9.0

3 years ago

Code change: https://github.com/soasme/PeppaPEG/compare/v1.8.0..v1.9.0

  • [Test]: Enable Valgrind for gcc check. #55
  • [Feature]: Support specifying a name for a grammar rule. #53
  • [Feature]: Added Lineno and Col Offset for P4_Tokens. #52
  • [Feature]: Support parsing a subset of source input (P4_SetSourceSlice). #51
  • [Feature]: Added a new flag: P4_FLAG_NON_TERMINAL. #50

v1.8.0

3 years ago

Code change: https://github.com/soasme/PeppaPEG/compare/v1.7.0..v1.8.0.

[Bugfix]: Support non-ASCII case insensitive literal match. #48 #49

[Feature]: Allow user setting Userdata for P4_Tokens. #47

[Feature]: Print source ast in JSON format. #46

v1.7.0

3 years ago

Code change: https://github.com/soasme/PeppaPEG/compare/v1.6.0..v1.7.0.

  • [Enhancement]: Provided P4_GetErrorString. #44.
  • [Feature]: Added Join. #44
  • [Example]: Wrote an Calculator example in Peppa PEG. #43
  • [Feature]: Added StartOfInput and EndOfInput. #42
  • [Feature]: Added parameter stride for Range. #41