Skip to content

mobrien-ghost/Hatch

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub license CircleCI

Hatch

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 SwiftSyntax
  • HatchBuilder Provides a string concatenating resultBuidler so expressions can be interspersed with strings

Documentation

Example

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

About

Generate Swift with Swift

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Swift 100.0%