X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Fglsl%2Fgenerate.cpp;h=6b336f3179de690b2967cd85fe5da0cafff130ab;hb=223e295e4404a3913b8243d3b7eb12da39a68144;hp=842ca4f6cdd5ab1f68bb47b3bb657490b9bb9d6a;hpb=2d79e7d495480251ada1bd6478339537b9799e7f;p=libs%2Fgl.git diff --git a/source/glsl/generate.cpp b/source/glsl/generate.cpp index 842ca4f6..6b336f31 100644 --- a/source/glsl/generate.cpp +++ b/source/glsl/generate.cpp @@ -230,7 +230,7 @@ void VariableResolver::visit(MemberAccess &memacc) void VariableResolver::visit(BinaryExpression &binary) { - if(binary.oper=="[") + if(binary.oper->token[0]=='[') { { SetForScope set(record_target, false); @@ -261,7 +261,7 @@ void VariableResolver::visit(Assignment &assign) self_referencing = false; assign.right->visit(*this); - assign.self_referencing = (self_referencing || assign.oper!="="); + assign.self_referencing = (self_referencing || assign.oper->token[0]!='='); assign.target_declaration = assignment_target; } @@ -460,7 +460,7 @@ ExpressionStatement &InterfaceGenerator::insert_assignment(const string &left, E VariableReference *ref = new VariableReference; ref->name = left; assign->left = ref; - assign->oper = "="; + assign->oper = &Operator::get_operator("=", Operator::BINARY); assign->right = right; ExpressionStatement *stmt = new ExpressionStatement; @@ -622,9 +622,8 @@ void InterfaceGenerator::visit(Passthrough &pass) BinaryExpression *subscript = new BinaryExpression; subscript->left = ref; - subscript->oper = "["; + subscript->oper = &Operator::get_operator("[", Operator::BINARY); subscript->right = pass.subscript; - subscript->after = "]"; MemberAccess *memacc = new MemberAccess; memacc->left = subscript; @@ -644,9 +643,8 @@ void InterfaceGenerator::visit(Passthrough &pass) { BinaryExpression *subscript = new BinaryExpression; subscript->left = ref; - subscript->oper = "["; + subscript->oper = &Operator::get_operator("[", Operator::BINARY); subscript->right = pass.subscript; - subscript->after = "]"; insert_assignment(out_name, subscript); } else