UNPKG

@gobstones/gobstones-parser

Version:
225 lines 6.47 kB
import { ASTMain } from './ast'; import { SymbolTable } from './symtable'; import { SourceReader } from './reader'; export declare class Linter { private _symtable; private _enabledLinterChecks; constructor(symtable: SymbolTable); lint(ast: ASTMain): SymbolTable; _ensureLintCheckExists(linterCheckId: string): void; enableCheck(linterCheckId: string, enabled: boolean): void; _lintCheck(startPos: SourceReader, endPos: SourceReader, reason: string, args: any[]): void; _lintMain(ast: ASTMain): void; _addDefinitionToSymbolTable(definition: any): void; /** Definitions **/ _lintDefinition(definition: { tag: symbol; }): void; _lintDefProgram(definition: { tag?: symbol; body?: any; }): void; _lintDefInteractiveProgram(definition: { tag?: symbol; branches?: any; }): void; _lintDefProcedure(definition: { tag?: symbol; body?: any; startPos?: any; endPos?: any; name?: any; parameters?: any; }): void; _lintDefFunction(definition: { tag?: symbol; body?: any; startPos?: any; endPos?: any; name?: any; parameters?: any; }): void; _lintDefType(): void; /** Statements **/ _lintStatement(statement: { tag: symbol; }): void; _lintStmtBlock(block: { tag?: symbol; statements?: any; }, allowReturn: boolean): void; _lintStmtReturn(statement: { tag?: symbol; result?: any; }): void; _lintStmtIf(statement: { tag?: symbol; condition?: any; thenBlock?: any; elseBlock?: any; }): void; _lintStmtRepeat(statement: { tag?: symbol; times?: any; body?: any; }): void; _lintStmtForeach(statement: { tag?: symbol; pattern?: any; range?: any; body?: any; }): void; _lintStmtForeachPattern(pattern: { tag?: any; startPos: any; endPos: any; constructorName: any; boundVariables: any; }): void; _lintStmtWhile(statement: { tag?: symbol; condition?: any; body?: any; }): void; _lintStmtSwitch(statement: { tag?: symbol; subject?: any; branches?: any; }): void; _lintSwitchBranches(branches: any[], isInteractiveProgram: boolean): void; _lintBranches(branches: any[], isInteractiveProgram: boolean, isMatching: boolean): void; _branchesCheckWildcardAndVariable(branches: any[]): void; _branchesCheckNoRepeats(branches: any[]): void; _branchesCheckCompatible(branches: any[]): void; _branchesCheckTypeEvent(branches: any[]): void; _branchesCheckTypeNotEvent(branches: any[]): void; _lintBranchBody(branch: { pattern: { boundVariables: any; }; body: { tag: symbol; }; }, isMatching: boolean): void; _patternType(pattern: { tag?: any; startPos: any; endPos: any; constructorName: any; boundVariables: any; }): string; _lintStmtAssignVariable(statement: { tag?: symbol; variable?: any; value?: any; }): void; _lintStmtAssignTuple(statement: { tag?: symbol; variables?: any; value?: any; }): void; _lintStmtProcedureCall(statement: { tag?: symbol; procedureName?: any; startPos?: any; endPos?: any; args?: any; }): void; /** Patterns **/ _lintPattern(pattern: { tag?: any; startPos: any; endPos: any; constructorName: any; boundVariables: any; }): void; _lintPatternWildcard(): void; _lintPatternVariable(): void; _lintPatternNumber(): void; _lintPatternStructure(pattern: { tag?: any; startPos: any; endPos: any; constructorName: any; boundVariables: any; }): void; _lintPatternTuple(): void; _lintPatternTimeout(): void; /** Expressions **/ _lintExpression(expression: any): void; _lintExprVariable(): void; _lintExprConstantNumber(): void; _lintExprConstantString(): void; _lintExprChoose(expression: { condition: any; trueExpr: any; falseExpr: any; }): void; _lintExprMatching(expression: { subject: any; branches: any; }): void; _lintMatchingBranches(branches: any[]): void; _lintExprList(expression: { elements: any; }): void; _lintExprRange(expression: { first: any; second: any; last: any; }): void; _lintExprTuple(expression: { elements: any; }): void; _lintExprStructure(expression: { tag?: symbol; constructorName?: any; startPos: any; endPos: any; fieldBindings?: any; original?: any; fieldNames?: (() => any) | (() => any) | (() => any); }): void; _lintExprStructureUpdate(expression: { tag?: symbol; constructorName?: any; startPos: any; endPos: any; fieldBindings?: any; original?: any; fieldNames?: (() => any) | (() => any) | (() => any); }): void; _lintExprStructureOrUpdate(expression: any, original: { tag: symbol; }): void; _checkStructureNoRepeatedFields(constructorName: string, expression: { fieldNames: () => any; startPos: SourceReader; endPos: SourceReader; }): void; _checkStructureBindingsCorrect(constructorName: string, expression: { fieldNames: () => any; startPos: SourceReader; endPos: SourceReader; }): void; _checkStructureBindingsComplete(constructorName: string, expression: { fieldNames: () => any; startPos: SourceReader; endPos: SourceReader; }): void; _checkStructureTypeNotEvent(constructorName: string, expression: { startPos: SourceReader; endPos: SourceReader; }): void; _lintExprFunctionCall(expression: { functionName: { value: any; }; startPos: SourceReader; endPos: SourceReader; args: string | any[]; }): void; _disableRecursion(ast: ASTMain): void; _failExpectedConstructorButGot(startPos: SourceReader, endPos: SourceReader, name: string): void; } //# sourceMappingURL=linter.d.ts.map