Skip to content

Commit d0f6829

Browse files
authored
Merge pull request #55 from Werewolfkiss/ValueTableLineParserHandleWhitespace
Allow ValueTableLineParser to handle the case of (number " ") without…
2 parents 3e3b03a + cfd01d5 commit d0f6829

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

DbcParserLib/Parsers/ValueTableLineParser.cs

+3-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ internal class ValueTableLineParser : ILineParser
99
private const string ValueTableLineStarter = "VAL_ ";
1010
private const string ValueTableLinkParsingRegex = @"VAL_\s+(\d+)\s+([a-zA-Z_][\w]*)\s+([a-zA-Z_][\w]*)\s*;";
1111
private const string ValueTableParsingRegex = @"VAL_\s+(?:(?:(\d+)\s+([a-zA-Z_][\w]*))|([a-zA-Z_][\w]*))\s+((?:(?:-?\d+)\s+(?:""[^""]*"")\s+)*)\s*;";
12+
private const string ValueTableNewLineRegex = @"(""[^""]*""\s+)";
13+
private const string ValueTableNewLineRegexReplace = "$1\n";
1214

1315
private readonly IParseFailureObserver m_observer;
1416

@@ -34,7 +36,7 @@ public bool TryParse(string line, IDbcBuilder builder, INextLineProvider nextLin
3436
match = Regex.Match(cleanLine, ValueTableParsingRegex);
3537
if (match.Success)
3638
{
37-
var valueTable = match.Groups[4].Value.TrimStart().Replace("\" ", "\"" + Environment.NewLine);
39+
var valueTable = Regex.Replace(match.Groups[4].Value.TrimStart(), ValueTableNewLineRegex, ValueTableNewLineRegexReplace);
3840
var valueTableDictionary = valueTable.ToDictionary();
3941
if (match.Groups[3].Value != "")
4042
builder.LinkTableValuesToEnvironmentVariable(match.Groups[3].Value, valueTableDictionary);

0 commit comments

Comments
 (0)