From 9d039e87ae1e40ec8daeb5bc97b84e7f74c2f5d4 Mon Sep 17 00:00:00 2001 From: Sean Sube Date: Sun, 8 Jan 2023 14:52:38 -0600 Subject: [PATCH] add PEG grammar for prompt emphasis --- common/prompt.peg | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 common/prompt.peg diff --git a/common/prompt.peg b/common/prompt.peg new file mode 100644 index 00000000..f91b1a51 --- /dev/null +++ b/common/prompt.peg @@ -0,0 +1,14 @@ +// PEGjs grammar + +Prompt = head:Token tokens:(Split _ token:Token { return token; })+ { return [head, ...tokens]; } + +Token = IncreaseToken / SmallIncreaseToken / DecreaseToken / PlainToken; + +IncreaseToken = '(' _ token:Token _ ')' { return [token[0], token[1] * 1.1]; } +SmallIncreaseToken = '{' _ token:Token _ '}' { return [token[0], token[1] * 1.05]; } +DecreaseToken = '[' _ token:Token _ ']' { return [token[0], token[1] * 0.9]; } + +PlainToken = [a-zA-Z0-9 ]+ { return [text(), 1.0]; } + +Split = [, \t\n\r]+ +_ = [ \t\n\r]* \ No newline at end of file