Comments (2)
The PEGTL is for parsing, so it can't help you with serialisation, regardless of text or binary formats.
For deserialisation I'd say the PEGTL isn't especially well suited to binary data, however (a) we have used the PEGTL infrastructure in our taoJSON library for parsing binary JSON-like data formats (CBOR, UBJSON and MsgPack) and (b) support for binary data will be improved as soon as I get around to finishing the back-porting of some experiments to the main branch.
You can look at the taoJSON code here: https://github.com/taocpp/json/tree/main/include/tao/json and If you want to try parsing binary data with the PEGTL then please feel free to contact us here, both for questions and for feedback, it's always useful to see how other people use the library.
from pegtl.
Yes, I am considering using "pegtl" for binary deserialization parsing. Binary data blocks are also composed of different rules, and there are two parsing methods
-
Describe the specified binary block by parsing the "protobuf" syntax, and use a virtual machine like method to complete data deconstruction
-
The rules for defining binary blocks with c++templates are parsed through template expansion.
The first method may cause some consumption, but supports hot update
The second method may be zero consumption, but each rule modification requires recompilation, and templating may not be suitable for the hash table structure
from pegtl.
Related Issues (20)
- MSVC: error C2338: static_assert failed: 'internal::dependent_true< T > && ( begin != std::string_view::npos ) HOT 3
- Example grammar proto3 does not accept enum fields starting from zero HOT 2
- data type of input? byte? character? HOT 3
- <ciso646> is removed in C++20 and should not be included HOT 1
- Feature Request: Add defines to exclude headers to improve compile time HOT 4
- parse_tree needs to be optimized HOT 8
- Why parsing succeeds? HOT 3
- Why do I have an infinite loop? HOT 4
- parser_tree.cpp example not compiling in VS 2022, as of PEGTL 3.2.6 HOT 4
- Order independence of rules HOT 7
- list_tail<> invokes action for trailing separator twice? HOT 10
- Parsing Binary Data Encounters Left recursion Problem HOT 9
- Any consideration of ghc::filesystem HOT 8
- Can't get custom error messages to work. HOT 8
- Backreferences and grammar tracing/analyzing. HOT 5
- vs2022 编译错误 x64-windows-static\include\tao\pegtl\parse.hpp(45,38): error C2062: 意外的类型“unknown-type”
- Issues with change_action_and_state HOT 1
- Inconsistent behaviour of `sor` for custom rules. HOT 6
- standard_trace fails to compile with an action that uses change_action_and_states HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pegtl.