public void TestSiblingsBeforeSelf_MissingChild() { var a = new VariableUse() { Name = "a" }; var plus = new OperatorUse() { Text = "+" }; var foo = new VariableUse() { Name = "foo" }; var times = new OperatorUse() { Text = "*" }; var b = new VariableUse() { Name = "b" }; var exp = new Expression(); exp.AddComponents(new Expression[] { a, plus, foo, times, b }); var dot = new OperatorUse { Text = ".", ParentExpression = exp }; Assert.Throws <InvalidOperationException>(() => dot.GetSiblingsBeforeSelf()); }
private static void TestEquality(VariableUse expected, VariableUse actual, string propertyName) { try { ExpressionsAreEqual(expected.Index, actual.Index, "Index"); } catch (DataAssertionException e) { e.Add(propertyName); throw e; } TestEquality((NameUse)expected, (NameUse)actual, propertyName); }
public void TestSiblingsBeforeSelf_MissingChild() { var a = new VariableUse() { Name = "a" }; var plus = new OperatorUse() { Text = "+" }; var foo = new VariableUse() { Name = "foo" }; var times = new OperatorUse() { Text = "*" }; var b = new VariableUse() { Name = "b" }; var exp = new Expression(); exp.AddComponents(new Expression[] { a, plus, foo, times, b }); var dot = new OperatorUse { Text = ".", ParentExpression = exp }; Assert.Throws<InvalidOperationException>(() => dot.GetSiblingsBeforeSelf()); }
public void TestSiblingsBeforeSelf() { var a = new VariableUse() { Name = "a" }; var plus = new OperatorUse() { Text = "+" }; var foo = new VariableUse() { Name = "foo" }; var times = new OperatorUse() { Text = "*" }; var b = new VariableUse() { Name = "b" }; var exp = new Expression(); exp.AddComponents(new Expression[] { a, plus, foo, times, b }); var fooSiblings = foo.GetSiblingsBeforeSelf().ToList(); Assert.AreEqual(2, fooSiblings.Count()); Assert.AreSame(a, fooSiblings[0]); Assert.AreSame(plus, fooSiblings[1]); var aSiblings = a.GetSiblingsBeforeSelf().ToList(); Assert.AreEqual(0, aSiblings.Count()); }
public void TestSiblingsAfterSelf() { var a = new VariableUse() { Name = "a" }; var plus = new OperatorUse() { Text = "+" }; var foo = new VariableUse() { Name = "foo" }; var times = new OperatorUse() { Text = "*" }; var b = new VariableUse() { Name = "b" }; var exp = new Expression(); exp.AddComponents(new Expression[] { a, plus, foo, times, b }); var plusSiblings = plus.GetSiblingsAfterSelf().ToList(); Assert.AreEqual(3, plusSiblings.Count()); Assert.AreSame(foo, plusSiblings[0]); Assert.AreSame(times, plusSiblings[1]); Assert.AreSame(b, plusSiblings[2]); var bSiblings = b.GetSiblingsAfterSelf().ToList(); Assert.AreEqual(0, bSiblings.Count()); }
public static void EmitUnset(this VariableUse /*!*/ node, CodeGenerator codeGenerator) { node.NodeCompiler <IVariableUseCompiler>().EmitUnset(node, codeGenerator); }
public static PhpTypeCode EmitIsset(this VariableUse /*!*/ node, CodeGenerator codeGenerator, bool empty) { return(node.NodeCompiler <IVariableUseCompiler>().EmitIsset(node, codeGenerator, empty)); }
public static PhpTypeCode EmitAssign(this VariableUse /*!*/ node, CodeGenerator codeGenerator) { return(node.NodeCompiler <IVariableUseCompiler>().EmitAssign(node, codeGenerator)); }
void IVariableUseCompiler.EmitUnset(VariableUse node, CodeGenerator codeGenerator) { EmitUnset((T)node, codeGenerator); }
PhpTypeCode IVariableUseCompiler.EmitIsset(VariableUse node, CodeGenerator codeGenerator, bool empty) { return(EmitIsset((T)node, codeGenerator, empty)); }
PhpTypeCode IVariableUseCompiler.EmitAssign(VariableUse node, CodeGenerator codeGenerator) { return(EmitAssign((T)node, codeGenerator)); }