forked from stanford-oval/thingtalk
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
69 lines (57 loc) · 1.83 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
// -*- mode: js; indent-tabs-mode: nil; js-basic-offset: 4 -*-
//
// This file is part of ThingTalk
//
// Copyright 2016 The Board of Trustees of the Leland Stanford Junior University
//
// Author: Giovanni Campagna <gcampagn@cs.stanford.edu>
//
// See COPYING for details
"use strict";
const Ast = require('./lib/ast');
const Compiler = require('./lib/compiler');
const Grammar = require('./lib/grammar_api');
const ExecEnvironment = require('./lib/runtime/exec_environment');
const Type = require('./lib/type');
const SchemaRetriever = require('./lib/schema');
const Generate = require('./lib/generate');
const Describe = require('./lib/describe');
const Formatter = require('./lib/runtime/formatter');
const PermissionChecker = require('./lib/permission_checker');
const Units = require('./lib/units');
const NNSyntax = require('./lib/nn-syntax');
let { typeCheckFilter, typeCheckProgram, typeCheckPermissionRule } = require('./lib/typecheck');
Generate.typeCheckFilter = typeCheckFilter;
Generate.typeCheckProgram = typeCheckProgram;
Generate.typeCheckPermissionRule = typeCheckPermissionRule;
let { fromManifest, toManifest } = require('./lib/ast/api');
Ast.fromManifest = fromManifest;
Ast.toManifest = toManifest;
const Builtin = require('./lib/builtin');
module.exports = {
version: '1.6.1',
// AST definitions
Ast,
Type,
// Syntax support
Grammar,
NNSyntax,
// Compiler and runtime
Compiler,
ExecEnvironment,
Formatter,
SchemaRetriever,
// Helper modules to manipulate ASTs
Generate,
Describe,
// Policy support
PermissionChecker,
// Misc
Units,
// Value Types, exposed so that Thingpedia can reexpose them to device impls
// (to create values of the appropriate types)
Location: Builtin.Location,
Entity: Builtin.Entity,
Time: Builtin.Time,
Builtin,
};