tom-weatherhead/thaw-grammar

View on GitHub
src/main.ts

Summary

Maintainability
A
0 mins
Test Coverage
// tom-weatherhead/thaw-grammar/src/main.ts

// Much of the code in this library was based on or inspired by the book
// 'Programming Languages: An Interpreter-Based Approach', by Samuel N. Kamin, 1990,
// Addison Wesley, ISBN 0-201-06824-9.

// Exceptions
export { KeyNotFoundException } from './common/exceptions/key-not-found-exception';
// export { NotImplementedException } from './common/exceptions/not-implemented-exception';

// Common DOM (Domain Object Model)
export {
    EnvironmentFrame,
    IEnvironmentFrame
} from './common/domain-object-model/environment-frame';
export { IExpression, ITypedByName } from './common/domain-object-model/iexpression';
export { GlobalInfoBase } from './common/domain-object-model/global-info-base';
export { IGlobalInfo, IGlobalInfoForInterpreter } from './common/domain-object-model/iglobal-info';
// export { IGlobalInfoOps } from './common/domain-object-model/iglobal-info-ops';
export { isVariableT, IVariable, Variable } from './common/domain-object-model/variable';

// Other common stuff
export { createGlobalInfo } from './common/global-info-factory';
export { createGrammar } from './common/grammar-factory';

// My (ThAW's) minimal language
export { MinimalLanguageGlobalInfo } from './languages/minimal/domain-object-model/global-info';

// The Chapter 1 language from Kamin (Kamin 1/8)
export { Chapter1GlobalInfo } from './languages/chapter1/domain-object-model/global-info';

// LISP (Kamin 2/8)
export { ISExpression } from './languages/lisp/domain-object-model/isexpression';
export { LISPGlobalInfo } from './languages/lisp/domain-object-model/lisp-global-info';

export { LISPGrammarForLRParser } from './languages/lisp/lisp-grammar-for-lr-parser';

// APL (Kamin 3/8)
export { IAPLExpression, IAPLValue } from './languages/apl/domain-object-model/interfaces/ivalue';
export { createAPLNullValue } from './languages/apl/domain-object-model/data-types/value';
export { APLGlobalInfo } from './languages/apl/domain-object-model/global-info';

// Scheme (Kamin 4/8)
export { PrimOp } from './languages/scheme/domain-object-model/primitive-operator';
export { SchemeGlobalInfo } from './languages/scheme/domain-object-model/scheme-global-info';

// SASL (Kamin 5/8)
export { SASLGlobalInfo } from './languages/sasl/domain-object-model/global-info';

// CLU (Kamin 6/8)
export { ICLUExpression, ICLUValue } from './languages/clu/domain-object-model/interfaces/ivalue';
export { CLUGlobalInfo } from './languages/clu/domain-object-model/global-info';

// Smalltalk (Kamin 7/8)
export * from './languages/smalltalk/domain-object-model/interfaces/iexpression';
export { SmalltalkGlobalInfo } from './languages/smalltalk/domain-object-model/global-info';
// export { SmalltalkEnvironmentFrame } from './languages/smalltalk/domain-object-model/environment-frame';

// Prolog (Kamin 8/8)
export { PrologClause } from './languages/prolog/domain-object-model/prolog-clause';
export { PrologFloatLiteral } from './languages/prolog/domain-object-model/prolog-float-literal';
export {
    isPrologFunctorExpression,
    PrologFunctorExpression
} from './languages/prolog/domain-object-model/prolog-functor-expression';
export { PrologGlobalInfo } from './languages/prolog/domain-object-model/prolog-global-info';
export { isPrologGoal, PrologGoal } from './languages/prolog/domain-object-model/prolog-goal';
export { PrologIntegerLiteral } from './languages/prolog/domain-object-model/prolog-integer-literal';
export { createPrologVariable } from './languages/prolog/domain-object-model/prolog-variable';

export { IPrologExpression } from './languages/prolog/domain-object-model/interfaces/iprolog-expression';
export {
    isIPrologVariable,
    IPrologVariable
} from './languages/prolog/domain-object-model/interfaces/ivariable';

// The Lambda Calculus
export * from './languages/lambda-calculus/church-numerals';
export * from './languages/lambda-calculus/operators';
export * from './languages/lambda-calculus/type-guards';
export * from './languages/lambda-calculus/utilities';
export * from './languages/lambda-calculus/utilities-with-dom';

export * from './languages/lambda-calculus/domain-object-model/interfaces/expression';

export * from './languages/lambda-calculus/domain-object-model/call';
export * from './languages/lambda-calculus/domain-object-model/lambda-expression';

// The Lambda Calculus with Integer Extensions
export * from './languages/lambda-calculus-integer-extension/domain-object-model/integer-literal';

export * from './languages/lambda-calculus-integer-extension/domain-object-model/primitive-operator';

// The arithmetic lenguage
export * from './languages/arithmetic/domain-object-model/global-info';