fix #385
This commit is contained in:
parent
8bddc4d02c
commit
3cf57c203b
|
|
@ -2380,12 +2380,22 @@ namespace PascalABCCompiler.Parsers
|
|||
bool in_kav = false;
|
||||
Stack<char> sk_stack = new Stack<char>();
|
||||
sk_stack.Push('(');i++;
|
||||
bool default_value = false;
|
||||
while (i < meth.Length && sk_stack.Count > 0)
|
||||
{
|
||||
if (meth[i] == '\'') in_kav = !in_kav;
|
||||
else if (meth[i] == '(') {if (!in_kav) sk_stack.Push('(');}
|
||||
else if (meth[i] == ')') {if (!in_kav) sk_stack.Pop();}
|
||||
sb.Append(meth[i]);
|
||||
if (meth[i] == ':' && meth[i+1] == '=' && !in_kav)
|
||||
default_value = true;
|
||||
else if (meth[i] == ';' && !in_kav)
|
||||
default_value = false;
|
||||
if (!default_value || meth[i] == ')' && sk_stack.Count == 0)
|
||||
{
|
||||
if (meth[i] == ')' && sk_stack.Count == 0 && default_value)
|
||||
sb = new StringBuilder(sb.ToString().TrimEnd());
|
||||
sb.Append(meth[i]);
|
||||
}
|
||||
i++;
|
||||
}
|
||||
while (i<meth.Length && meth[i] != ':' && meth[i] != ';')
|
||||
|
|
|
|||
Loading…
Reference in a new issue