Gather all parser-related files to parser/ dir

This commit is contained in:
Rene Saarsoo 2020-09-21 16:07:11 +03:00
parent f0fcdb0949
commit e306691af5
5 changed files with 9 additions and 5 deletions

View File

@ -1,4 +1,4 @@
import { IntervalLabelTokenValue } from "./tokenizer"; import { IntervalLabelTokenValue } from "./parser/tokenizer";
export type Workout = { export type Workout = {
name: string; name: string;

View File

@ -2,7 +2,6 @@ import * as fs from "fs";
import { generateZwo } from "./generateZwo"; import { generateZwo } from "./generateZwo";
import { parse } from "./parser"; import { parse } from "./parser";
import { stats } from "./stats"; import { stats } from "./stats";
import { tokenize } from "./tokenizer";
const opts = { stats: false, filename: "" }; const opts = { stats: false, filename: "" };
if (process.argv[2] === "--stats") { if (process.argv[2] === "--stats") {
@ -12,7 +11,7 @@ if (process.argv[2] === "--stats") {
opts.filename = process.argv[2]; opts.filename = process.argv[2];
} }
const workout = parse(tokenize(fs.readFileSync(opts.filename, "utf8"))); const workout = parse(fs.readFileSync(opts.filename, "utf8"));
if (opts.stats) { if (opts.stats) {
console.log(stats(workout)); console.log(stats(workout));

5
src/parser/index.ts Normal file
View File

@ -0,0 +1,5 @@
import { Workout } from "../ast";
import { parseTokens } from "./parser";
import { tokenize } from "./tokenizer";
export const parse = (source: string): Workout => parseTokens(tokenize(source));

View File

@ -1,4 +1,4 @@
import { Interval, Workout } from "./ast"; import { Interval, Workout } from "../ast";
import { isIntervalLabelTokenValue, Token } from "./tokenizer"; import { isIntervalLabelTokenValue, Token } from "./tokenizer";
type Header = Partial<Omit<Workout, "intervals">>; type Header = Partial<Omit<Workout, "intervals">>;
@ -105,7 +105,7 @@ const parseIntervals = (tokens: Token[]): Interval[] => {
return intervals; return intervals;
}; };
export const parse = (tokens: Token[]): Workout => { export const parseTokens = (tokens: Token[]): Workout => {
const [header, intervalTokens] = parseHeader(tokens); const [header, intervalTokens] = parseHeader(tokens);
return { return {
name: header.name || "", name: header.name || "",