Skip to content

Commit 56a0fdd

Browse files
committed
fix: quotted string support
1 parent dbf71bf commit 56a0fdd

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

src/main/kotlin/com/github/xepozz/toon/language/parser/Toon.bnf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ table ::= tableDefinition DELIMITER (iterable | EOL array)
2828
pin=2
2929
}
3030

31-
tableDefinition ::= key LBRACKET '#'? NUMBER RBRACKET (LBRACE iterable RBRACE)?
31+
tableDefinition ::= key LBRACKET SHARP? NUMBER RBRACKET (LBRACE iterable RBRACE)?
3232
{
3333
pin=2
3434
}

src/main/kotlin/com/github/xepozz/toon/language/parser/Toon.flex

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,21 @@ NEWLINE=\r|\n|\r\n
1919
WHITESPACE=[ \t]+
2020
ALPHA=[A-Za-z]
2121
NUMBER=[\d]+(.[\d]+)?
22+
QUOTTED_STRING = "\""(\\\"|[^\"])*"\"" | "\'"(\\\'|[^\'])*"\'"
2223

2324
%state VALUE, TABLE_SIZE
2425
%%
2526

2627
<YYINITIAL> {
2728
#[^\n]* { return ToonTypes.COMMENT; }
28-
([\w]+) { return ToonTypes.TEXT; }
29+
([\w]+) { return ToonTypes.TEXT; }
2930
":" { yybegin(VALUE); return ToonTypes.DELIMITER; }
3031
"[" { yybegin(TABLE_SIZE); return ToonTypes.LBRACKET; }
3132
}
3233

3334
<TABLE_SIZE> {
3435
{NUMBER} { return ToonTypes.NUMBER; }
36+
"#" { return ToonTypes.SHARP; }
3537
"]" { yybegin(YYINITIAL); return ToonTypes.RBRACKET; }
3638
}
3739

@@ -42,7 +44,7 @@ NUMBER=[\d]+(.[\d]+)?
4244
"," { return ToonTypes.COMMA; }
4345
{NUMBER} { return ToonTypes.NUMBER; }
4446
{ALPHA}[^\n,]* { return ToonTypes.TEXT; }
45-
\"([^\\\"]|.)+\" { return ToonTypes.TEXT; }
47+
{QUOTTED_STRING} { return ToonTypes.TEXT; }
4648
}
4749

4850

@@ -57,3 +59,5 @@ NUMBER=[\d]+(.[\d]+)?
5759
"-" { return ToonTypes.DASH; }
5860
{WHITESPACE} { return TokenType.WHITE_SPACE; }
5961
{NEWLINE} { yybegin(YYINITIAL); return ToonTypes.EOL; }
62+
63+
[^] { return TokenType.BAD_CHARACTER; }

0 commit comments

Comments
 (0)