Skip to content

phadej/typify-parser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

typify type parser

Type signature parser for typify

Build Status NPM version Dependency Status devDependency Status Code Climate

Turns (foo, bar 42) -> quux into

{
  "type": "function",
  "arg": {
    "type": "product",
    "args": [
      {
        "type": "ident",
        "value": "foo"
      },
      {
        "type": "application",
        "callee": {
          "type": "ident",
          "value": "bar"
        },
        "args": [
          {
            "type": "number",
            "value": 42
          }
        ]
      }
    ]
  },
  "result": {
    "type": "ident",
    "value": "quux"
  }
}

Synopsis

var parser = require("typify-parser");

// Example from above
var t = parser("(foo, bar 42) -> quux");

// Free vars
p.freeVars(t);                             // ['bar', 'foo', 'quux']
p.freeVars(p("rec list -> () | a & list")) // ['a']

About

Type signature parser for typify

Resources

License

Stars

Watchers

Forks

Packages

No packages published