# HG changeset patch # User cin # Date 1424437114 -10800 # Node ID f973c5df997241dfd2ef297191df1589f07ff091 # Parent 041b77711262df0d95f4696c420e288e7c8fcea5 fixes diff -r 041b77711262 -r f973c5df9972 Implab/Diagnostics/Extensions.cs --- a/Implab/Diagnostics/Extensions.cs Wed Feb 18 18:02:02 2015 +0300 +++ b/Implab/Diagnostics/Extensions.cs Fri Feb 20 15:58:34 2015 +0300 @@ -19,7 +19,7 @@ }, reason => { TraceContext.Instance.EnterLogicalOperation(op,true); - TraceLog.TraceInformation("promise cancelled {0}", reason.Message); + TraceLog.TraceInformation("promise cancelled {0}", reason == null ? "" : reason.Message); TraceLog.EndLogicalOperation(); TraceContext.Instance.Leave(); } diff -r 041b77711262 -r f973c5df9972 Implab/JSON/JSONParser.cs --- a/Implab/JSON/JSONParser.cs Wed Feb 18 18:02:02 2015 +0300 +++ b/Implab/JSON/JSONParser.cs Fri Feb 20 15:58:34 2015 +0300 @@ -46,10 +46,11 @@ static readonly DFAStateDescriptior[] _arrayDFA; static JSONParser() { - var jsonExpression = Token.New(JsonTokenType.BeginObject, JsonTokenType.BeginArray).Tag(0); + var valueExpression = Token.New(JsonTokenType.BeginArray, JsonTokenType.BeginObject, JsonTokenType.Literal, JsonTokenType.Number, JsonTokenType.String); var memberExpression = Token.New(JsonTokenType.String).Cat(Token.New(JsonTokenType.NameSeparator)).Cat(valueExpression); + var objectExpression = memberExpression .Cat( Token.New(JsonTokenType.ValueSeparator) @@ -69,6 +70,8 @@ .Cat(Token.New(JsonTokenType.EndArray)) .Tag(0); + var jsonExpression = valueExpression.Tag(0); + _jsonDFA = BuildDFA(jsonExpression).States; _objectDFA = BuildDFA(objectExpression).States; _arrayDFA = BuildDFA(arrayExpression).States;