From f98054afdd7503e2ee27f9952f98f07fd72ebe59 Mon Sep 17 00:00:00 2001 From: Pelle Johnsen Date: Fri, 7 Aug 2020 04:49:43 +0000 Subject: [PATCH] [glsl-new] add vec2 and vec3 --- src/front/glsl_new/lex.rs | 2 ++ src/front/glsl_new/parser.rs | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/src/front/glsl_new/lex.rs b/src/front/glsl_new/lex.rs index 1f46f23c79..4eec42bc13 100644 --- a/src/front/glsl_new/lex.rs +++ b/src/front/glsl_new/lex.rs @@ -111,6 +111,8 @@ pub fn consume_token(mut input: &str) -> (Option, &str) { meta.chars.end = start + pos; match word { "void" => (Some(Token::Void(meta)), rest), + "vec2" => (Some(Token::Vec2(meta)), rest), + "vec3" => (Some(Token::Vec3(meta)), rest), "vec4" => (Some(Token::Vec4(meta)), rest), //TODO: remaining types _ => (Some(Token::Identifier((meta, String::from(word)))), rest), diff --git a/src/front/glsl_new/parser.rs b/src/front/glsl_new/parser.rs index 02a6b03e0d..755b9d8e20 100644 --- a/src/front/glsl_new/parser.rs +++ b/src/front/glsl_new/parser.rs @@ -462,6 +462,26 @@ pomelo! { } type_specifier_nonarray ::= Void { None } + type_specifier_nonarray ::= Vec2 { + Some(Type { + name: None, + inner: TypeInner::Vector { + size: VectorSize::Bi, + kind: ScalarKind::Float, + width: 4, + } + }) + } + type_specifier_nonarray ::= Vec3 { + Some(Type { + name: None, + inner: TypeInner::Vector { + size: VectorSize::Tri, + kind: ScalarKind::Float, + width: 4, + } + }) + } type_specifier_nonarray ::= Vec4 { Some(Type { name: None,