mirror of
https://github.com/gfx-rs/wgpu.git
synced 2026-04-22 03:02:01 -04:00
[glsl-in] Handle assign ops: +=, *=, etc
This commit is contained in:
committed by
Dzmitry Malyshau
parent
602367c062
commit
0101ea7319
@@ -435,17 +435,29 @@ pomelo! {
|
||||
|
||||
assignment_expression ::= conditional_expression;
|
||||
assignment_expression ::= unary_expression(mut pointer) assignment_operator(op) assignment_expression(value) {
|
||||
pointer.statements.extend(value.statements);
|
||||
match op {
|
||||
BinaryOperator::Equal => {
|
||||
pointer.statements.extend(value.statements);
|
||||
pointer.statements.push(Statement::Store{
|
||||
pointer: pointer.expression,
|
||||
value: value.expression
|
||||
});
|
||||
pointer
|
||||
},
|
||||
//TODO: op != Equal
|
||||
_ => {return Err(ErrorKind::NotImplemented("assign op"))}
|
||||
_ => {
|
||||
let h = extra.context.expressions.append(
|
||||
Expression::Binary{
|
||||
op,
|
||||
left: pointer.expression,
|
||||
right: value.expression,
|
||||
}
|
||||
);
|
||||
pointer.statements.push(Statement::Store{
|
||||
pointer: pointer.expression,
|
||||
value: h,
|
||||
});
|
||||
pointer
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user