[groovy] lexer: don't reset states and braces stacks in IN_SINGLE_GSTRING state, just pop the state

This commit is contained in:
Daniil Ovchinnikov
2018-07-06 14:29:59 +03:00
parent ee605ddc46
commit a843f5cd22
4 changed files with 709 additions and 723 deletions
@@ -253,16 +253,15 @@ mGSTRING_LITERAL = {mDOUBLE_QUOTED_LITERAL} | {mTRIPLE_DOUBLE_QUOTED_LITERAL}
{mSTRING_ESC} { return storeToken(GSTRING_CONTENT); }
\\. | \\ { return storeToken(GSTRING_CONTENT); }
{mNLS} {
resetState();
yybeginstate(NLS_AFTER_NLS);
return storeToken(NL);
}
"$" {
yybeginstate(IN_GSTRING_DOLLAR);
return storeToken(T_DOLLAR);
}
[^] {
yypushback(1);
yyendstate(IN_SINGLE_GSTRING);
}
}
<IN_TRIPLE_GSTRING> {
@@ -39,14 +39,6 @@ Groovy script
Literal
PsiElement(Integer)('3')
PsiElement(})('}')
PsiErrorElement:Gstring end expected
<empty list>
PsiElement(new line)('\n ')
Call expression
Reference expression
PsiElement(identifier)('ved')
Command arguments
Compound Gstring
PsiElement(Gstring begin)('"""')
PsiErrorElement:Gstring end expected
<empty list>
GrStringContentImpl(STRING_CONTENT)
PsiElement(Gstring content)('\n ved')
PsiElement(Gstring end)('"""')
@@ -46,11 +46,9 @@ Groovy script
PsiElement(Gstring begin)('"')
GrStringContentImpl(STRING_CONTENT)
PsiElement(Gstring content)(')')
PsiErrorElement:Gstring end expected
PsiErrorElement:Gstring end expected, got '}'
<empty list>
PsiElement(new line)('\n ')
PsiErrorElement:')', ',' or <expression> expected, got '}'
<empty list>
PsiWhiteSpace('\n ')
PsiElement(})('}')
PsiElement(new line)('\n\n ')
Method