public Boolean AllowLiteral(out LiteralToken literal) { var current = m_enumerator.Current; switch (current.Type) { case ParseEventType.Null: literal = new NullToken(m_fileId, current.Line, current.Column); m_enumerator.MoveNext(); return(true); case ParseEventType.Boolean: literal = new BooleanToken(m_fileId, current.Line, current.Column, (Boolean)current.Value); m_enumerator.MoveNext(); return(true); case ParseEventType.Number: literal = new NumberToken(m_fileId, current.Line, current.Column, (Double)current.Value); m_enumerator.MoveNext(); return(true); case ParseEventType.String: literal = new StringToken(m_fileId, current.Line, current.Column, (String)current.Value); m_enumerator.MoveNext(); return(true); } literal = null; return(false); }
public void GetReservedRetunrsWhatTokenHasReserved() { ReservedIndexedCharList list = new ReservedIndexedCharList("ABC"); Token t = new NullToken(); list.Reserve(0, t); list.Reserve(2, t); Assert.IsTrue(list.ToStringOnlyNoneReserved().Length == 1); Assert.IsTrue(list.GetReserved(t) == "AC"); }
protected T Visit(JToken token) { return(token switch { JObject jObject => Visit(jObject), JProperty jProperty => Visit(jProperty), JArray jArray => Visit(jArray), DoubleToken doubleToken => Visit(doubleToken), StringToken stringToken => Visit(stringToken), BooleanToken booleanToken => Visit(booleanToken), NullToken nullToken => Visit(nullToken), _ => default });
public override bool Parse(ExpressionCompiler compiler) { int i = compiler.Pos; if (base.Parse(compiler)) { NullToken token = new NullToken(i); compiler.Parent.AddChild(token); return(true); } else { return(false); } }
/// <summary> /// Converts a value. /// </summary> /// <returns> /// A converted value. If the method returns null, the valid null value is used. /// </returns> /// <param name="value">The value produced by the binding source.</param> /// <param name="targetType">The type of the binding target property.</param> /// <param name="parameter">The converter parameter to use.</param> /// <param name="culture">The culture to use in the converter.</param> public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { IToken converted = new NullToken(); int index = int.Parse(parameter.ToString()); if (index < s_fieldData.Count) { ItemData data = s_fieldData[index]; IToken dataToken = ((TokenTreeProperty)data.Value).Token; TokenTree parameters = Parameters; if (data.ParameterData != null) { parameters = Parameters.Clone(); parameters.Children.AddIfMissing(new TokenTree(data.ParameterData.Name, data.ParameterData.StringValue)); } converted = dataToken.Evaluate(new TokenTreeList {(TokenTree)value, parameters}, true); } ITypeToken typeToken = converted as ITypeToken; if (typeToken != null) return typeToken.Data; ExpressionToken expression = converted as ExpressionToken; if (expression?.Operator is SubstitutionOperator) return ""; return converted; }
public override string Visit(NullToken token) { return(token.ToString()); }
/// <summary> /// Whether two null tokens are equal. /// </summary> protected bool Equals(NullToken other) { return(Equals(Data, other.Data)); }
public void TestNull() { ValueToken result = new NullToken(); Assert.IsNull(result.Value); }