diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2016-07-26 00:22:55 +0200 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2016-07-26 00:22:55 +0200 |
commit | 128e53d220d97225803d61d86f8e43439563181d (patch) | |
tree | e0d5da8d666c54d1d17e64ee6f52af424129f90d /KicadNetParser.g4 | |
download | kicad-utils-128e53d220d97225803d61d86f8e43439563181d.tar.gz kicad-utils-128e53d220d97225803d61d86f8e43439563181d.tar.bz2 kicad-utils-128e53d220d97225803d61d86f8e43439563181d.tar.xz kicad-utils-128e53d220d97225803d61d86f8e43439563181d.zip |
WIP: kicad_gen is a util to generate schematic.h files from KiCAD netlist files.
Current code contains a lexer and parser for KiCAD's netlist files and code to build a tree of the netlist which can be used for generation.
Contains CMake code for integrating the generation into CMake too.
Diffstat (limited to 'KicadNetParser.g4')
-rw-r--r-- | KicadNetParser.g4 | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/KicadNetParser.g4 b/KicadNetParser.g4 new file mode 100644 index 0000000..dc45c4b --- /dev/null +++ b/KicadNetParser.g4 @@ -0,0 +1,72 @@ +parser grammar KicadNetParser; + +options { + tokenVocab = KicadNetLexer; +} + +file: + form+ + ; + +form: + name #formName + | component #formComponent + | field #formField + | net #formNet + | node #formNode + | pinDecl #formDecl + | ref #formRef + | value #formValue + | keyValue #formKeyValue + | string #formString + ; + +code: + '(' 'code' INTEGER ')' + ; + +component: + '(' 'comp' ref value keyValue* ')' + ; + +field: + '(' 'field' name string ')' + ; + +name: + '(' 'name' string ')' + ; + +net: + '(' 'net' code name node+ ')' + ; + +node: + '(' 'node' ref pinRef ')' + ; + +pinRef: + '(' 'pin' INTEGER ')' + ; + +pinDecl: + '(' 'pin' '(' 'num' INTEGER ')' '(' 'name' string ')' '(' 'type' string ')' ')' + ; + +ref: + '(' 'ref' string ')' + ; + +value: + '(' 'value' string ')' + ; + +keyValue: + '(' string form* ')' + ; + +string: + ID #stringId + | INTEGER #stringInt + | STRING #stringText + ; |