public override Node ExitPreElseif(Token node) { node.AddValue("#elif"); return(node); }
public override Node ExitInout(Token node) { node.AddValue(""); return(node); }
public override Node ExitPreElseif(Token node) { node.AddValue("#elif"); return node; }
/** * <summary>Called when exiting a parse tree node.</summary> * * <param name='node'>the node being exited</param> * * <returns>the node to add to the parse tree, or * null if no parse tree should be created</returns> * * <exception cref='ParseException'>if the node analysis * discovered errors</exception> */ public override Node ExitNumber(Token node) { node.AddValue(Int32.Parse(node.GetImage())); return(node); }
public override Node ExitNullLiteral(Token node) { node.AddValue(new NullLiteralElement()); return(node); }
public override Node ExitNumber(Token node) { if (node.GetImage().Contains("f")) { string temp = node.GetImage(); node.RemoveAllValues(); node.AddValue(temp.Replace("f","")); } return base.ExitNumber(node); }
public override Node ExitLt(Token node) { node.AddValue(LogicalCompareOperation.LessThan); return(node); }
public override Node ExitFalse(Token node) { node.AddValue(new BooleanLiteralElement(false)); return(node); }
public override Node ExitPower(Token node) { node.AddValue(BinaryArithmeticOperation.Power); return(node); }
public override Node ExitNe(Token node) { node.AddValue(LogicalCompareOperation.NotEqual); return(node); }
public override Node ExitMod(Token node) { node.AddValue(BinaryArithmeticOperation.Mod); return(node); }
public override Node ExitSub(Token node) { node.AddValue(BinaryArithmeticOperation.Subtract); return(node); }
/** * <summary>Called when exiting a parse tree node.</summary> * * <param name='node'>the node being exited</param> * * <returns>the node to add to the parse tree, or * null if no parse tree should be created</returns> * * <exception cref='ParseException'>if the node analysis * discovered errors</exception> */ public override Node ExitString(Token node) { node.AddValue(node.GetImage()); return(node); }
public override Node ExitDigit(Token node) { node.AddValue(new Character(node.Image.Single())); return(node); }
public override Node ExitGte(Token node) { node.AddValue(LogicalCompareOperation.GreaterThanOrEqual); return(node); }
public override Node ExitOp(Token node) { node.AddValue(node.Image); return(node); }
public override Node ExitOr(Token node) { node.AddValue(AndOrOperation.Or); return(node); }
public override Node ExitIdentifier(Token node) { node.AddValue(node.Image); return(node); }
public override Node ExitXor(Token node) { node.AddValue("Xor"); return(node); }
public override Node ExitArrayBraces(Token node) { node.AddValue("[]"); return(node); }
public override Node ExitNot(Token node) { node.AddValue(string.Empty); return(node); }
public override Node ExitOut(Token node) { node.AddValue(""); return node; }
public override Node ExitRightShift(Token node) { node.AddValue(ShiftOperation.RightShift); return(node); }
private bool CheckAndReplace(Token node, String strHLSL, String strGLSL) { if (node.GetImage().Equals(strHLSL)) { node.AddValue(strGLSL); return true; } return false; }
public override Node ExitFunctionConstructorCallOrVariableDeclaration(Production node) { Token identifier = (Token)GrammaticaNodeUtils.FindChildOf(node, new string[2] { "Type", "IDENTIFIER" }); if (identifier == null) { return(node); } replaceIntrinsicFunc(identifier); // mul(term, term) => term * term if (identifier.GetImage().Equals("mul")) { identifier.AddValue(""); Node virgula = GrammaticaNodeUtils.FindChildOf(node, new string[2] { "PartOf_Constructor_Call", "COMMA" }); virgula.AddValue(" * "); } // cross(T,N) => cross(N,T). if (identifier.GetImage().Equals("cross")) { Production listOfParam = (Production)GrammaticaNodeUtils.FindChildOf(node, "PartOf_Constructor_Call"); Node exp1 = GrammaticaNodeUtils.FindChildOf(listOfParam, "Expression", 1); Node exp2 = GrammaticaNodeUtils.FindChildOf(listOfParam, "Expression", 2); GrammaticaNodeUtils.SwapChildrenPosition(listOfParam, exp1, exp2); } // saturate(x) => clamp(x,0.0,1.0). if (identifier.GetImage().Equals("saturate")) { identifier.AddValue("clamp"); var listOfParam = (Production)GrammaticaNodeUtils.FindChildOf(node, "PartOf_Constructor_Call"); var children = GrammaticaNodeUtils.GetChildren(listOfParam); children.Insert(2, GrammaticaNodeUtils.CreateCommaToken()); children.Insert(3, GrammaticaNodeUtils.CreateNumberToken(0.0f)); children.Insert(4, GrammaticaNodeUtils.CreateCommaToken()); children.Insert(5, GrammaticaNodeUtils.CreateNumberToken(1.0f)); } // add dependent function Node n = GrammaticaNodeUtils.FindChildOf(node, "PartOf_Constructor_Call"); if (n != null && identifier != null && functionScope != null) { // function call or constructor call. dependencyGraph.SearchDependant(identifier.GetImage()).AddCallsBy(functionScope); } // Adds only globalVars. if (!scopeVars.Contains(identifier.GetImage())) { dependencyGraph.SearchDependant(identifier.GetImage()).AddCallsBy(functionScope); } return(node); }