Hacking
Directory structure
├── docs - Documentation
├── example - Example fcp schemas
├── plugins - Fcp plugins
│ ├── fcp_can_c - CAN C code generator plugin
│ │ ├── example - Example fcp schemas for CAN C
│ │ ├── fcp_can_c - Source for fcp_can_c
│ │ ├── templates - Jinja templates used for code generation
│ │ └── tests - Unit tests for fcp_can_c
│ │ ├── 001_basic_struct - Basic struct test for CAN C
│ │ ├── 002_nested_enum - Nested enum test for CAN C
│ │ └── 003_msg_scheduling - Nested msg scheduling test for CAN C
│ ├── fcp_cpp - Example plugin
│ │ └── fcp_cpp - Source for fcp_dbc
│ ├── fcp_dbc - CAN DBC generator
│ │ ├── example - Example fcp schemas for CAN bus
│ │ ├── fcp_dbc - Source for fcp_dbc
│ │ └── tests - Unit tests for fcp_dbc
│ │ ├── schemas - Schemas used in fcp_dbc unit tests
│ ├── fcp_nop - Example plugin
│ │ ├── fcp_nop - Source code of fcp_nop
│ │ └── tests - Tests for fcp_nop
├── src
│ └── fcp - Fcp source code
│ └── specs - Fcp object tree
└── tests - Tests for fcp
└── schemas - Schemas used in fcp unit tests
├── generator - Schemas used to test the generator
└── verifier - Schemas used to test the verifier
src/fcp
├── codegen.py - Support for codegenerator plugins
├── colors.py - Color for terminal output
├── encoding.py - Convert fcp object tree into an encodeable structure
├── error_logger.py - Support for logging errors in fcp
├── error.py - Error class for fcp
├── __init__.py
├── __main__.py
├── maybe.py - Maybe monad
├── result.py - Result monad
├── serde.py - python serialization/deserialization library
├── specs - Fcp object tree
│ ├── comment.py - Comment object
│ ├── enum.py - Enum object
│ ├── impl.py - Impl object
│ ├── struct_field.py - Field object
│ ├── __init__.py
│ ├── metadata.py - Metadata object
│ ├── rpc.py - Rpc object
│ ├── service.py - Service object
│ ├── signal_block.py - Signal block object
│ ├── struct.py - Struct object
│ ├── type.py - Type object
│ └── v2.py - Fcp v2 root
├── types.py - python typing helpers
├── v2_parser.py - Fcp v2 parser
├── verifier.py - Post parsing error analysis
└── version.py - fcp version