diff --git a/src/parser.ts b/src/parser.ts index 2d04f1b..52f3116 100644 --- a/src/parser.ts +++ b/src/parser.ts @@ -69,7 +69,7 @@ const BINARY_OPERATORS = [ // TODO: this is GLSL-only, separate language constants const TYPE_REGEX = /^(void|bool|float|u?int|[uib]?vec\d|mat\d(x\d)?)$/ const QUALIFIER_REGEX = /^(const|uniform|in|out|inout|centroid|flat|smooth|invariant|lowp|mediump|highp)$/ -const VARIABLE_REGEX = new RegExp(`${TYPE_REGEX.source}|${QUALIFIER_REGEX.source}`) +const VARIABLE_REGEX = new RegExp(`${TYPE_REGEX.source}|${QUALIFIER_REGEX.source}|layout`) const isDeclaration = RegExp.prototype.test.bind(VARIABLE_REGEX) diff --git a/tests/parser.test.ts b/tests/parser.test.ts index ffa7082..430cf6d 100644 --- a/tests/parser.test.ts +++ b/tests/parser.test.ts @@ -164,7 +164,7 @@ describe('parser', () => { { const statement = parse( - ' layout(location = 0, component = 1, column_major) flat in mat4 test;', + 'layout(location = 0, component = 1, column_major) flat in mat4 test;', )[0] as VariableDeclaration expect(statement).toBeInstanceOf(VariableDeclaration) expect(statement.type).toBeInstanceOf(Type)