Generate Swift using Swift.
This package contains two modules:
HatchParser
Provides a simple, extensible parser to to get a hierarchical list of symbols from swift code using SwiftSyntaxHatchBuilder
Provides a string concatenatingresultBuidler
so expressions can be interspersed with strings
import HatchParser
let source: String = <some swift code>
let symbols = SymbolParser.parse(source: source)
dump(symbols)
Input:
struct A1 {
struct BC {
struct C1 {}
struct C2 {}
struct C3 {}
}
struct BD {
struct D1 {}
struct D2 {}
}
struct BX {}
}
struct A2 {}
enum MyEnum {}
Output:
▿ 3 elements
▿ HatchParser.Struct
- name: "A1"
▿ children: 3 elements
▿ HatchParser.Struct
- name: "BC"
▿ children: 3 elements
▿ HatchParser.Struct
- name: "C1"
- children: 0 elements
- inheritedTypes: 0 elements
▿ HatchParser.Struct
- name: "C2"
- children: 0 elements
- inheritedTypes: 0 elements
▿ HatchParser.Struct
- name: "C3"
- children: 0 elements
- inheritedTypes: 0 elements
- inheritedTypes: 0 elements
▿ HatchParser.Struct
- name: "BD"
▿ children: 2 elements
▿ HatchParser.Struct
- name: "D1"
- children: 0 elements
- inheritedTypes: 0 elements
▿ HatchParser.Struct
- name: "D2"
- children: 0 elements
- inheritedTypes: 0 elements
- inheritedTypes: 0 elements
▿ HatchParser.Struct
- name: "BX"
- children: 0 elements
- inheritedTypes: 0 elements
- inheritedTypes: 0 elements
▿ HatchParser.Struct
- name: "A2"
- children: 0 elements
- inheritedTypes: 0 elements
▿ HatchParser.Enum
- name: "MyEnum"
- children: 0 elements
- inheritedTypes: 0 elements