X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fglsl%2Fparser.cpp;h=8f2160a626674675b1f63b76ce5dc992d92451ff;hb=2e0ed3f7d23f09de7b4b09c2f132c316ce703d9a;hp=31f9fcb65cc7ffe4da48cacd8cc41e0c7787dba5;hpb=6dcf74922f46b086ad394c19fd6ce083a635b290;p=libs%2Fgl.git diff --git a/source/glsl/parser.cpp b/source/glsl/parser.cpp index 31f9fcb6..8f2160a6 100644 --- a/source/glsl/parser.cpp +++ b/source/glsl/parser.cpp @@ -496,10 +496,8 @@ RefPtr Parser::parse_expression(const Operator *outer_oper) if(token=="(") { tokenizer.parse_token(); - RefPtr parexpr = create_node(); - parexpr->expression = parse_expression(); + left = parse_expression(); tokenizer.expect(")"); - left = parexpr; } else if(isdigit(token[0]) || token=="true" || token=="false") left = parse_literal(); @@ -551,10 +549,10 @@ RefPtr Parser::parse_binary(const RefPtr &left, co binary->left = left; binary->oper = &oper; tokenizer.expect(oper.token); - if(oper.token[0]=='[') + if(oper.token2[0]) { binary->right = parse_expression(); - tokenizer.expect("]"); + tokenizer.expect(oper.token2); } else binary->right = parse_expression(&oper); @@ -577,7 +575,6 @@ RefPtr Parser::parse_function_call(const VariableReference &var) { RefPtr call = create_node(); call->name = var.name; - call->constructor = is_type(call->name); call->oper = &Operator::get_operator("(", Operator::POSTFIX); tokenizer.expect("("); while(tokenizer.peek_token()!=")")