import references = require('references'); import path = require('path'); import fs = require('fs'); import PEG = require('pegjs'); import isAssignableTo = require('./isAssignableTo'); import Types = require('tsd-schema'); // Create a parser for typescript model definitions (using pegjs) var grammar = fs.readFileSync(path.join(__dirname, './grammar.peg'), 'utf8'); var parser = PEG.buildParser(grammar); /** Generate a schema corresponding to the declarations in the given typescript file. */ export function parse(filename: string): Types.Schema { var tsd = fs.readFileSync(filename, 'utf8'); var schema = parser.parse(tsd); schema.isAssignableTo = isAssignableTo; return schema; }