klog.js
Version:
A JavaScript implementation of the Klog time tracking file format
76 lines (69 loc) • 5.88 kB
TypeScript
// AUTOGENERATED FILE
// This file was generated from grammar.ohm by `ohm generateBundles`.
import {
BaseActionDict,
Grammar,
IterationNode,
Node,
NonterminalNode,
Semantics,
TerminalNode
} from 'ohm-js';
export interface KlogActionDict<T> extends BaseActionDict<T> {
file?: (this: NonterminalNode, arg0: IterationNode, arg1: IterationNode, arg2: NonterminalNode, arg3: IterationNode, arg4: IterationNode, arg5: IterationNode, arg6: IterationNode, arg7: NonterminalNode) => T;
record_summaryAndEntries?: (this: NonterminalNode, arg0: NonterminalNode, arg1: NonterminalNode, arg2: NonterminalNode, arg3: NonterminalNode, arg4: NonterminalNode, arg5: IterationNode, arg6: IterationNode) => T;
record_entries?: (this: NonterminalNode, arg0: NonterminalNode, arg1: NonterminalNode, arg2: NonterminalNode, arg3: IterationNode, arg4: IterationNode) => T;
record_summary?: (this: NonterminalNode, arg0: NonterminalNode, arg1: NonterminalNode, arg2: NonterminalNode) => T;
record_empty?: (this: NonterminalNode, arg0: NonterminalNode) => T;
record?: (this: NonterminalNode, arg0: NonterminalNode) => T;
recordHead?: (this: NonterminalNode, arg0: NonterminalNode, arg1: IterationNode, arg2: IterationNode) => T;
shouldTotal?: (this: NonterminalNode, arg0: TerminalNode, arg1: NonterminalNode, arg2: TerminalNode) => T;
entry?: (this: NonterminalNode, arg0: NonterminalNode, arg1: NonterminalNode, arg2: IterationNode) => T;
recordSummary_wrap?: (this: NonterminalNode, arg0: NonterminalNode, arg1: IterationNode, arg2: NonterminalNode, arg3: NonterminalNode, arg4: NonterminalNode) => T;
recordSummary_single?: (this: NonterminalNode, arg0: NonterminalNode, arg1: IterationNode, arg2: NonterminalNode, arg3: NonterminalNode) => T;
recordSummary?: (this: NonterminalNode, arg0: NonterminalNode) => T;
summaryChar?: (this: NonterminalNode, arg0: NonterminalNode) => T;
entrySummary_same?: (this: NonterminalNode, arg0: TerminalNode, arg1: NonterminalNode) => T;
entrySummary_next?: (this: NonterminalNode, arg0: NonterminalNode, arg1: NonterminalNode) => T;
entrySummary_empty?: (this: NonterminalNode, arg0: TerminalNode, arg1: IterationNode) => T;
entrySummary?: (this: NonterminalNode, arg0: NonterminalNode) => T;
entrySummarySameLine_wrap?: (this: NonterminalNode, arg0: IterationNode, arg1: NonterminalNode, arg2: NonterminalNode, arg3: NonterminalNode, arg4: NonterminalNode, arg5: NonterminalNode) => T;
entrySummarySameLine_single?: (this: NonterminalNode, arg0: IterationNode, arg1: NonterminalNode, arg2: NonterminalNode) => T;
entrySummarySameLine?: (this: NonterminalNode, arg0: NonterminalNode) => T;
entrySummaryNextLine?: (this: NonterminalNode, arg0: NonterminalNode, arg1: NonterminalNode, arg2: NonterminalNode) => T;
date?: (this: NonterminalNode, arg0: NonterminalNode, arg1: NonterminalNode, arg2: NonterminalNode, arg3: NonterminalNode, arg4: TerminalNode, arg5: NonterminalNode, arg6: NonterminalNode, arg7: TerminalNode, arg8: NonterminalNode, arg9: NonterminalNode) => T;
duration_hourMinute?: (this: NonterminalNode, arg0: IterationNode, arg1: IterationNode, arg2: TerminalNode, arg3: NonterminalNode | TerminalNode, arg4: NonterminalNode | TerminalNode, arg5: TerminalNode) => T;
duration_hour?: (this: NonterminalNode, arg0: IterationNode, arg1: IterationNode, arg2: TerminalNode) => T;
duration_minute?: (this: NonterminalNode, arg0: IterationNode, arg1: IterationNode, arg2: TerminalNode) => T;
duration?: (this: NonterminalNode, arg0: NonterminalNode) => T;
timeRange_open?: (this: NonterminalNode, arg0: NonterminalNode, arg1: IterationNode, arg2: TerminalNode, arg3: IterationNode, arg4: IterationNode) => T;
timeRange_closed?: (this: NonterminalNode, arg0: NonterminalNode, arg1: IterationNode, arg2: TerminalNode, arg3: IterationNode, arg4: NonterminalNode) => T;
timeRange?: (this: NonterminalNode, arg0: NonterminalNode) => T;
backwardsShiftedTime?: (this: NonterminalNode, arg0: TerminalNode, arg1: NonterminalNode) => T;
forwardsShiftedTime?: (this: NonterminalNode, arg0: NonterminalNode, arg1: TerminalNode) => T;
time_twentyFourHour?: (this: NonterminalNode, arg0: NonterminalNode, arg1: TerminalNode, arg2: TerminalNode, arg3: NonterminalNode) => T;
time_twelveHour?: (this: NonterminalNode, arg0: IterationNode | TerminalNode, arg1: NonterminalNode | TerminalNode, arg2: TerminalNode, arg3: TerminalNode, arg4: NonterminalNode, arg5: IterationNode) => T;
time?: (this: NonterminalNode, arg0: NonterminalNode) => T;
twentyFourHour_a?: (this: NonterminalNode, arg0: TerminalNode, arg1: TerminalNode) => T;
twentyFourHour_b?: (this: NonterminalNode, arg0: TerminalNode, arg1: NonterminalNode) => T;
twentyFourHour_c?: (this: NonterminalNode, arg0: NonterminalNode) => T;
twentyFourHour?: (this: NonterminalNode, arg0: NonterminalNode) => T;
period?: (this: NonterminalNode, arg0: TerminalNode) => T;
eol?: (this: NonterminalNode, arg0: NonterminalNode) => T;
newline?: (this: NonterminalNode, arg0: TerminalNode) => T;
indent_spaces?: (this: NonterminalNode, arg0: TerminalNode, arg1: TerminalNode, arg2: IterationNode, arg3: IterationNode) => T;
indent?: (this: NonterminalNode, arg0: NonterminalNode | TerminalNode) => T;
blankCharacter?: (this: NonterminalNode, arg0: TerminalNode) => T;
}
export interface KlogSemantics extends Semantics {
addOperation<T>(name: string, actionDict: KlogActionDict<T>): this;
extendOperation<T>(name: string, actionDict: KlogActionDict<T>): this;
addAttribute<T>(name: string, actionDict: KlogActionDict<T>): this;
extendAttribute<T>(name: string, actionDict: KlogActionDict<T>): this;
}
export interface KlogGrammar extends Grammar {
createSemantics(): KlogSemantics;
extendSemantics(superSemantics: KlogSemantics): KlogSemantics;
}
declare const grammar: KlogGrammar;
export default grammar;