WingsType = enum
  default = "unknownObj", structw = "struct", enumw = "enum",
  interfacew = "interface"
Supported wings types   Source Edit
Visibility = enum
  public = "public", protected = "protected", private = "private"
  Source Edit
ImportedWingsType = ref object
  name*: string
  init*: string
  wingsType*: WingsType
  Source Edit
AbstractFunction = object
  visibility*: Visibility
  name*: string
  arguments*: Table[string, string] ## key: name, value: type
  returnType*: string        ## wingsType to be parse
  Source Edit
IWings = ref object of RootObj
  comment*: string
  dependencies*: seq[string]
  filename*: string
  filepath*: Table[string, string]
  implement*: Table[string, string]
  imported*: bool
  imports*: Table[string, HashSet[string]]
  name*: string
  typesImported*: Table[string, Table[string, ImportedWingsType]]
  wingsType*: WingsType
A wings object interface.   Source Edit
WEnum = ref object of IWings
  values*: seq[string]
A wings enum object.   Source Edit
WStruct = ref object of IWings
  fields*: seq[string]
  functions*: Table[string, string]
A wings struct object.   Source Edit
WInterface = ref object of IWings
  fields*: seq[string]
  functions*: Table[string, string]
  abstractFunctions*: Table[string, AbstractFunction]
  Source Edit


proc initImportedWingsType(name: string = ""; init: string = "";
                           wingsType: WingsType = WingsType.default): ImportedWingsType {...}{.
    raises: [], tags: [].}
  Source Edit
proc parseFile(filename: string; skipImport: bool): Table[string, IWings] {...}{.
    raises: [ValueError, GenericError, IOError, KeyError, InvalidIndexError],
    tags: [ReadIOEffect, ReadDirEffect].}
Parse the given file (and its dependencies) into a table of filename to IWings.   Source Edit
proc addImport(iwings: var IWings; newImport: string; importLang: string): void {...}{.
    raises: [KeyError], tags: [].}
Add new file / library to be imported by the IWings.   Source Edit