From 745ef6a6d609a6690d6051a16dec82e058884792 Mon Sep 17 00:00:00 2001 From: Pelle Johnsen Date: Wed, 5 Aug 2020 15:45:42 +0200 Subject: [PATCH] [glsl-new] Add float consts (#119) --- src/front/glsl_new/parser.rs | 22 ++++++++++++++++++++-- test-data/simple.vert | 2 +- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/front/glsl_new/parser.rs b/src/front/glsl_new/parser.rs index f1c108007f..02a6b03e0d 100644 --- a/src/front/glsl_new/parser.rs +++ b/src/front/glsl_new/parser.rs @@ -163,10 +163,28 @@ pomelo! { } } // primary_expression ::= UintConstant; - // primary_expression ::= FloatConstant; + primary_expression ::= FloatConstant(f) { + let ty = extra.types.fetch_or_append(Type { + name: None, + inner: TypeInner::Scalar { + kind: ScalarKind::Float, + width: 4, + } + }); + let ch = extra.constants.fetch_or_append(Constant { + name: None, + specialization: None, + ty, + inner: ConstantInner::Float(f.1 as f64) + }); + ExpressionRule { + expression: extra.context.expressions.append(Expression::Constant(ch)), + statements: vec![], + } + } // primary_expression ::= BoolConstant; // primary_expression ::= DoubleConstant; - // primary_expression ::= LeftParen expression RightParen; + primary_expression ::= LeftParen expression(e) RightParen {e} postfix_expression ::= primary_expression; postfix_expression ::= postfix_expression LeftBracket integer_expression RightBracket { diff --git a/test-data/simple.vert b/test-data/simple.vert index 2a0aaea1cc..515cc82a58 100644 --- a/test-data/simple.vert +++ b/test-data/simple.vert @@ -1,5 +1,5 @@ #version 450 core void main() { - gl_Position = vec4(1); + gl_Position = vec4(1.0); }