better-word-count/src/status/parse.ts

57 lines
1 KiB
TypeScript
Raw Normal View History

2021-07-07 12:34:39 +00:00
const REGEX: RegExp = /{(.*?)}/g;
export interface Expression {
2021-07-07 12:34:39 +00:00
parsed: string[];
vars: number[];
}
2021-07-07 12:34:39 +00:00
// Could be done smarter but I'm tired
export function parse(query: string): Expression {
let parsed: string[] = [];
let vars: number[] = [];
query.split(REGEX).forEach((s) => {
switch (s) {
case "word_count":
vars.push(0);
break;
case "character_count":
vars.push(1);
break;
case "sentence_count":
vars.push(2);
break;
case "total_word_count":
vars.push(3);
break;
case "total_character_count":
vars.push(4);
break;
case "total_sentence_count":
vars.push(5);
break;
case "file_count":
vars.push(6);
break;
default:
parsed.push(s);
break;
}
});
return {
2021-07-07 12:34:39 +00:00
parsed: parsed,
vars: vars,
};
}
2021-07-07 12:34:39 +00:00
const varNames = {
word_count: 0,
charater_count: 1,
sentence_count: 2,
total_word_count: 3,
total_charater_count: 4,
total_sentence_count: 5,
file_count: 6,
};