1
0
Fork 0

add PEG grammar for prompt emphasis

This commit is contained in:
Sean Sube 2023-01-08 14:52:38 -06:00
parent c04fac033f
commit 9d039e87ae
1 changed files with 14 additions and 0 deletions

14
common/prompt.peg Normal file
View File

@ -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]*