private static IValueNode ParseScalarValue(ParserContext context) { if (context.Current.IsString()) { return(ParseStringLiteral(context)); } SyntaxToken start = context.ExpectScalarValue(); Location location = context.CreateLocation(start); if (start.Kind == TokenKind.Float) { return(new FloatValueNode ( location, start.Value )); } if (start.Kind == TokenKind.Integer) { return(new IntValueNode ( location, start.Value )); } throw context.Unexpected(start); }