From 959edbe10b59a76d2935a4c3e6f05cc68bcdc0b8 Mon Sep 17 00:00:00 2001 From: Roberto Raggi <roberto.raggi@nokia.com> Date: Wed, 10 Nov 2010 15:44:59 +0100 Subject: [PATCH] Introduced a simple incremental lexer for GLSL. --- src/libs/glsl/glsl-lib.pri | 2 +- src/libs/glsl/glsl.g | 89 + src/libs/glsl/glsl.h | 45 + src/libs/glsl/glsl.pro | 3 +- src/libs/glsl/glslast.cpp | 28 + src/libs/glsl/glslast.h | 28 + src/libs/glsl/glsldelete.cpp | 28 + src/libs/glsl/glsldump.cpp | 28 + src/libs/glsl/glslkeywords.cpp | 29 + src/libs/glsl/glsllexer.cpp | 98 +- src/libs/glsl/glsllexer.h | 48 +- src/libs/glsl/glslparser.cpp | 29 + src/libs/glsl/glslparser.h | 29 + src/libs/glsl/glslparsertable.cpp | 1737 +++++++++-------- src/libs/glsl/glslparsertable_p.h | 67 +- src/libs/glsl/make-parser.sh | 2 +- src/libs/glsl/specs/glsl.g.in | 89 + .../glsleditor/GLSLEditor.mimetypes.xml | 3 + .../glsleditor/GLSLEditor.pluginspec.in | 2 +- src/plugins/glsleditor/glsleditor.cpp | 12 +- src/plugins/glsleditor/glsleditor.pro | 7 +- src/plugins/glsleditor/glslhighlighter.cpp | 74 + src/plugins/glsleditor/glslhighlighter.h | 72 + 23 files changed, 1669 insertions(+), 880 deletions(-) create mode 100644 src/libs/glsl/glsl.h create mode 100644 src/plugins/glsleditor/glslhighlighter.cpp create mode 100644 src/plugins/glsleditor/glslhighlighter.h diff --git a/src/libs/glsl/glsl-lib.pri b/src/libs/glsl/glsl-lib.pri index cd39d5777b5..0422945a868 100644 --- a/src/libs/glsl/glsl-lib.pri +++ b/src/libs/glsl/glsl-lib.pri @@ -1,4 +1,4 @@ -HEADERS += $$PWD/glsllexer.h $$PWD/glslparser.h glslparsertable_p.h $$PWD/glslast.h +HEADERS += $$PWD/glsl.h $$PWD/glsllexer.h $$PWD/glslparser.h glslparsertable_p.h $$PWD/glslast.h SOURCES += $$PWD/glslkeywords.cpp $$PWD/glslparser.cpp $$PWD/glslparsertable.cpp \ $$PWD/glsllexer.cpp $$PWD/glslast.cpp $$PWD/glsldump.cpp $$PWD/glsldelete.cpp diff --git a/src/libs/glsl/glsl.g b/src/libs/glsl/glsl.g index a7ddeec428f..cd4fc0388b4 100644 --- a/src/libs/glsl/glsl.g +++ b/src/libs/glsl/glsl.g @@ -1,3 +1,32 @@ +--------------------------------------------------------------------------- +-- +-- This file is part of Qt Creator +-- +-- Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +-- +-- Contact: Nokia Corporation (qt-info@nokia.com) +-- +-- Commercial Usage +-- +-- Licensees holding valid Qt Commercial licenses may use this file in +-- accordance with the Qt Commercial License Agreement provided with the +-- Software or, alternatively, in accordance with the terms contained in +-- a written agreement between you and Nokia. +-- +-- GNU Lesser General Public License Usage +-- +-- Alternatively, this file may be used under the terms of the GNU Lesser +-- General Public License version 2.1 as published by the Free Software +-- Foundation and appearing in the file LICENSE.LGPL included in the +-- packaging of this file. Please review the following information to +-- ensure the GNU Lesser General Public License version 2.1 requirements +-- will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +-- +-- If you are unsure which license is appropriate for your use, please +-- contact the sales department at http://qt.nokia.com/contact. +--------------------------------------------------------------------------- + +-- -- todo: -- spelling of XOR_OP and CARET @@ -174,11 +203,42 @@ %token XOR_OP "^" %token TRUE "true" %token FALSE "false" +%token PREPROC "preprocessor directive" +%token COMMENT "comment" %token ERROR "error" %start translation_unit /: +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** Commercial Usage +** +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Nokia. +** +** GNU Lesser General Public License Usage +** +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** +**************************************************************************/ + #include "$header" #include "glsllexer.h" #include "glslast.h" @@ -214,6 +274,35 @@ private: :/ /. +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** Commercial Usage +** +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Nokia. +** +** GNU Lesser General Public License Usage +** +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** +**************************************************************************/ + #include "glslparser.h" #include <iostream> diff --git a/src/libs/glsl/glsl.h b/src/libs/glsl/glsl.h new file mode 100644 index 00000000000..457f44ba6e2 --- /dev/null +++ b/src/libs/glsl/glsl.h @@ -0,0 +1,45 @@ +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** Commercial Usage +** +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Nokia. +** +** GNU Lesser General Public License Usage +** +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** +**************************************************************************/ + +#ifndef GLSL_H +#define GLSL_H + +#include <QtCore/qglobal.h> +#include <cstdlib> +#include <cstddef> + +#if defined(GLSL_BUILD_LIB) +# define GLSL_EXPORT Q_DECL_EXPORT +#elif defined(GLSL_BUILD_STATIC_LIB) +# define GLSL_EXPORT +#else +# define GLSL_EXPORT Q_DECL_IMPORT +#endif + +#endif // GLSL_H diff --git a/src/libs/glsl/glsl.pro b/src/libs/glsl/glsl.pro index 758e2d613e4..3041ec1d65f 100644 --- a/src/libs/glsl/glsl.pro +++ b/src/libs/glsl/glsl.pro @@ -1,9 +1,8 @@ TEMPLATE = lib CONFIG += dll TARGET = GLSL -DEFINES += GLSL_BUILD_DIR QT_CREATOR +DEFINES += GLSL_BUILD_LIB QT_CREATOR include(../../qtcreatorlibrary.pri) include(glsl-lib.pri) include(../utils/utils.pri) - diff --git a/src/libs/glsl/glslast.cpp b/src/libs/glsl/glslast.cpp index c4914f39538..c873ea655a5 100644 --- a/src/libs/glsl/glslast.cpp +++ b/src/libs/glsl/glslast.cpp @@ -1,3 +1,31 @@ +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** Commercial Usage +** +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Nokia. +** +** GNU Lesser General Public License Usage +** +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** +**************************************************************************/ #include "glslast.h" using namespace GLSL; diff --git a/src/libs/glsl/glslast.h b/src/libs/glsl/glslast.h index 0ceb56be337..e273055cf39 100644 --- a/src/libs/glsl/glslast.h +++ b/src/libs/glsl/glslast.h @@ -1,3 +1,31 @@ +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** Commercial Usage +** +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Nokia. +** +** GNU Lesser General Public License Usage +** +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** +**************************************************************************/ #ifndef GLSLAST_H #define GLSLAST_H diff --git a/src/libs/glsl/glsldelete.cpp b/src/libs/glsl/glsldelete.cpp index 93288cb7e61..6406f022b23 100644 --- a/src/libs/glsl/glsldelete.cpp +++ b/src/libs/glsl/glsldelete.cpp @@ -1,3 +1,31 @@ +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** Commercial Usage +** +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Nokia. +** +** GNU Lesser General Public License Usage +** +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** +**************************************************************************/ #include "glslast.h" diff --git a/src/libs/glsl/glsldump.cpp b/src/libs/glsl/glsldump.cpp index 28c7b44bb4b..50bfa06c9d2 100644 --- a/src/libs/glsl/glsldump.cpp +++ b/src/libs/glsl/glsldump.cpp @@ -1,3 +1,31 @@ +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** Commercial Usage +** +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Nokia. +** +** GNU Lesser General Public License Usage +** +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** +**************************************************************************/ #include "glslast.h" diff --git a/src/libs/glsl/glslkeywords.cpp b/src/libs/glsl/glslkeywords.cpp index a992c9508e6..58a41e2879a 100644 --- a/src/libs/glsl/glslkeywords.cpp +++ b/src/libs/glsl/glslkeywords.cpp @@ -1,3 +1,32 @@ +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** Commercial Usage +** +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Nokia. +** +** GNU Lesser General Public License Usage +** +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** +**************************************************************************/ + #include "glsllexer.h" #include "glslparser.h" diff --git a/src/libs/glsl/glsllexer.cpp b/src/libs/glsl/glsllexer.cpp index 5490c10dfc8..eb160fddb83 100644 --- a/src/libs/glsl/glsllexer.cpp +++ b/src/libs/glsl/glsllexer.cpp @@ -1,3 +1,31 @@ +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** Commercial Usage +** +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Nokia. +** +** GNU Lesser General Public License Usage +** +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** +**************************************************************************/ #include "glsllexer.h" #include "glslparser.h" @@ -13,7 +41,10 @@ Lexer::Lexer(const char *source, unsigned size) _size(size), _yychar('\n'), _lineno(0), - _variant(Variant_Mask & ~Variant_Reserved) // everything except reserved + _state(0), + _variant(Variant_Mask & ~Variant_Reserved), // everything except reserved + _scanKeywords(true), + _scanComments(false) { } @@ -23,12 +54,9 @@ Lexer::~Lexer() void Lexer::yyinp() { - if (_it != _end) { - _yychar = *_it++; - if (_yychar == '\n') - ++_lineno; - } else - _yychar = 0; + _yychar = (unsigned char) *_it++; + if (_yychar == '\n') + ++_lineno; } int Lexer::yylex(Token *tk) @@ -44,6 +72,11 @@ int Lexer::yylex(Token *tk) return kind; } +enum { + State_normal, + State_comment +}; + int Lexer::yylex_helper(const char **position, int *line) { again: @@ -56,6 +89,22 @@ again: if (_yychar == 0) return Parser::EOF_SYMBOL; + if (_state == State_comment) { + while (_yychar) { + if (_yychar == '*') { + yyinp(); + if (_yychar == '/') { + yyinp(); + _state = State_normal; + break; + } + } else { + yyinp(); + } + } + return Parser::T_COMMENT; + } + const int ch = _yychar; yyinp(); @@ -171,6 +220,8 @@ again: if (_yychar == '\n') break; } + if (_scanComments) + return Parser::T_COMMENT; goto again; } else if (_yychar == '*') { yyinp(); @@ -179,12 +230,18 @@ again: yyinp(); if (_yychar == '/') { yyinp(); + if (_scanComments) + return Parser::T_COMMENT; goto again; } } else { yyinp(); } } + if (_scanComments) { + _state = State_comment; + return Parser::T_COMMENT; + } goto again; } else if (_yychar == '=') { yyinp(); @@ -302,16 +359,9 @@ again: while (std::isalnum(_yychar) || _yychar == '_') { yyinp(); } - int t = classify(word, _it - word -1); - if (!(t & Variant_Mask)) - return t; - if ((_variant & t & Variant_Mask) == 0) { - // TODO: issue a proper error for the unsupported keyword - std::string keyword(word, _it - word -1); - fprintf(stderr, "unsupported keyword `%s' at line %d\n", - keyword.c_str(), _lineno); - } - return t & ~Variant_Mask; + if (_scanKeywords) + return findKeyword(word, _it - word - 1); + return Parser::T_IDENTIFIER; } else if (std::isdigit(ch)) { while (std::isalnum(_yychar) || _yychar == '.') { yyinp(); @@ -323,3 +373,17 @@ again: return Parser::T_ERROR; } + +int Lexer::findKeyword(const char *word, int length) const +{ + int t = classify(word, length); + if (!(t & Variant_Mask)) + return t; + if ((_variant & t & Variant_Mask) == 0) { + // TODO: issue a proper error for the unsupported keyword + std::string keyword(word, length); + fprintf(stderr, "unsupported keyword `%s' at line %d\n", + keyword.c_str(), _lineno); + } + return t & ~Variant_Mask; +} diff --git a/src/libs/glsl/glsllexer.h b/src/libs/glsl/glsllexer.h index fbb8217d62b..d155d23e986 100644 --- a/src/libs/glsl/glsllexer.h +++ b/src/libs/glsl/glsllexer.h @@ -1,9 +1,40 @@ +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** Commercial Usage +** +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Nokia. +** +** GNU Lesser General Public License Usage +** +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** +**************************************************************************/ + #ifndef GLSLLEXER_H #define GLSLLEXER_H +#include "glsl.h" + namespace GLSL { -class Token +class GLSL_EXPORT Token { public: int kind; @@ -23,7 +54,7 @@ public: bool isNot(int k) const { return k != kind; } }; -class Lexer +class GLSL_EXPORT Lexer { public: Lexer(const char *source, unsigned size); @@ -44,10 +75,20 @@ public: Variant_Mask = 0xFFFF0000 }; + int state() const { return _state; } + void setState(int state) { _state = state; } + int variant() const { return _variant; } void setVariant(int flags) { _variant = flags; } + bool scanKeywords() const { return _scanKeywords; } + void setScanKeywords(bool scanKeywords) { _scanKeywords = scanKeywords; } + + bool scanComments() const { return _scanComments; } + void setScanComments(bool scanComments) { _scanComments = scanComments; } + int yylex(Token *tk); + int findKeyword(const char *word, int length) const; private: static int classify(const char *s, int len); @@ -62,7 +103,10 @@ private: int _size; int _yychar; int _lineno; + int _state; int _variant; + unsigned _scanKeywords: 1; + unsigned _scanComments: 1; }; } // end of namespace GLSL diff --git a/src/libs/glsl/glslparser.cpp b/src/libs/glsl/glslparser.cpp index cb55b54ce9b..7cd4d6cbbdc 100644 --- a/src/libs/glsl/glslparser.cpp +++ b/src/libs/glsl/glslparser.cpp @@ -1,4 +1,33 @@ +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** Commercial Usage +** +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Nokia. +** +** GNU Lesser General Public License Usage +** +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** +**************************************************************************/ + #include "glslparser.h" #include <iostream> diff --git a/src/libs/glsl/glslparser.h b/src/libs/glsl/glslparser.h index b01eff4200a..f2761f2c32b 100644 --- a/src/libs/glsl/glslparser.h +++ b/src/libs/glsl/glslparser.h @@ -1,4 +1,33 @@ +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** Commercial Usage +** +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Nokia. +** +** GNU Lesser General Public License Usage +** +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** +**************************************************************************/ + #include "glslparsertable_p.h" #include "glsllexer.h" #include "glslast.h" diff --git a/src/libs/glsl/glslparsertable.cpp b/src/libs/glsl/glslparsertable.cpp index 35494fcdcd7..a4ace3a1f2c 100644 --- a/src/libs/glsl/glslparsertable.cpp +++ b/src/libs/glsl/glslparsertable.cpp @@ -1,6 +1,49 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + // This file was generated by qlalr - DO NOT EDIT! #include "glslparsertable_p.h" +QT_BEGIN_NAMESPACE + const char *const GLSLParserTable::spell [] = { "end of file", "+=", "&", "&=", "&&", "attribute", "!", "bool", "break", "bvec2", "bvec3", "bvec4", "^", "case", "centroid", ":", ",", "const", "continue", "-", @@ -18,41 +61,42 @@ const char *const GLSLParserTable::spell [] = { "samplerCubeArrayShadow", "samplerCubeShadow", ";", "/", "smooth", "*", "struct", "subroutine", "-=", "switch", "~", "type_name", "uint", "uniform", "usampler1D", "usampler1DArray", "usampler2D", "usampler2DArray", "usampler2DMS", "usampler2DMSarray", "usampler2DRect", "usampler3D", "usamplerBuffer", "usamplerCube", "usamplerCubeArray", "uvec2", "uvec3", "uvec4", "varying", "vec2", - "vec3", "vec4", "|", "void", "while", "^=", "^", "true", "false", "error"}; + "vec3", "vec4", "|", "void", "while", "^=", "^", "true", "false", "preprocessor directive", + "comment", "error"}; const short GLSLParserTable::lhs [] = { - 171, 172, 172, 172, 172, 172, 174, 174, 174, 174, - 174, 174, 175, 176, 177, 177, 178, 178, 180, 180, - 179, 179, 181, 183, 183, 185, 185, 185, 185, 186, - 186, 186, 186, 187, 187, 187, 187, 188, 188, 188, - 189, 189, 189, 190, 190, 190, 190, 190, 191, 191, - 191, 192, 192, 193, 193, 194, 194, 195, 195, 196, - 196, 197, 197, 198, 198, 182, 182, 199, 199, 199, - 199, 199, 199, 199, 199, 199, 199, 199, 173, 173, - 200, 201, 201, 201, 201, 201, 201, 201, 201, 202, - 208, 208, 210, 210, 209, 213, 213, 211, 211, 211, - 211, 215, 215, 215, 215, 216, 203, 203, 203, 203, - 203, 203, 203, 217, 217, 217, 217, 217, 217, 217, - 217, 212, 212, 219, 220, 220, 220, 221, 222, 222, - 223, 223, 214, 206, 206, 206, 206, 206, 206, 206, - 206, 224, 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 184, 184, 205, 205, 205, 225, - 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, - 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, - 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, - 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, - 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, - 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, - 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, - 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, - 225, 225, 225, 225, 225, 225, 204, 204, 204, 226, - 226, 207, 207, 227, 227, 228, 228, 229, 229, 229, - 218, 230, 231, 231, 233, 233, 233, 233, 233, 233, - 233, 232, 232, 241, 241, 242, 242, 240, 240, 234, - 234, 235, 243, 243, 244, 244, 236, 245, 245, 237, - 237, 238, 238, 238, 246, 246, 248, 248, 247, 247, - 239, 239, 239, 239, 239, 170, 170, 249, 249, 249, - 250, 251}; + 173, 174, 174, 174, 174, 174, 176, 176, 176, 176, + 176, 176, 177, 178, 179, 179, 180, 180, 182, 182, + 181, 181, 183, 185, 185, 187, 187, 187, 187, 188, + 188, 188, 188, 189, 189, 189, 189, 190, 190, 190, + 191, 191, 191, 192, 192, 192, 192, 192, 193, 193, + 193, 194, 194, 195, 195, 196, 196, 197, 197, 198, + 198, 199, 199, 200, 200, 184, 184, 201, 201, 201, + 201, 201, 201, 201, 201, 201, 201, 201, 175, 175, + 202, 203, 203, 203, 203, 203, 203, 203, 203, 204, + 210, 210, 212, 212, 211, 215, 215, 213, 213, 213, + 213, 217, 217, 217, 217, 218, 205, 205, 205, 205, + 205, 205, 205, 219, 219, 219, 219, 219, 219, 219, + 219, 214, 214, 221, 222, 222, 222, 223, 224, 224, + 225, 225, 216, 208, 208, 208, 208, 208, 208, 208, + 208, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 226, 226, 226, 226, 186, 186, 207, 207, 207, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 206, 206, 206, 228, + 228, 209, 209, 229, 229, 230, 230, 231, 231, 231, + 220, 232, 233, 233, 235, 235, 235, 235, 235, 235, + 235, 234, 234, 243, 243, 244, 244, 242, 242, 236, + 236, 237, 245, 245, 246, 246, 238, 247, 247, 239, + 239, 240, 240, 240, 248, 248, 250, 250, 249, 249, + 241, 241, 241, 241, 241, 172, 172, 251, 251, 251, + 252, 253}; const short GLSLParserTable::rhs [] = { 1, 1, 1, 1, 1, 3, 1, 4, 1, 3, @@ -148,52 +192,52 @@ const short GLSLParserTable::goto_default [] = { 111, 0}; const short GLSLParserTable::action_index [] = { - 3093, -170, -170, -170, -170, -170, 48, -170, -170, -170, - -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, - -170, -170, -170, -170, -170, -170, -170, -170, -170, 224, - -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, - -170, -170, -170, -170, -63, -170, -170, -170, -170, -170, - -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, - -170, 24, 70, 30, -170, -170, -170, -170, -170, -170, - -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, - -170, -170, -170, -170, 41, -170, -170, -170, -170, -170, - -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, - -170, -170, -170, -170, -170, -170, -170, -170, -170, -10, - -81, -170, 128, 18, 1, 67, 304, 155, 304, 467, - -170, -170, -170, 3263, 956, -170, -170, -24, -170, -170, - -170, -170, -3, 5, -170, 64, -47, -170, -20, -170, - -170, -170, -170, 467, -83, -170, -170, -170, -30, 2433, - 2433, 219, -170, 2763, 630, 7, -170, -170, 4, -17, - -170, 71, 1612, -170, -170, 1120, -170, -31, 1120, 1120, - -170, -170, -170, -170, -170, 53, 33, -170, -74, 45, - 21, -170, -170, 1284, -75, 54, -170, -35, -121, 39, - -1, -127, 44, 133, -170, 120, 16, -170, -170, 1120, - -170, -170, -170, -170, -170, 78, 209, 1120, -170, -170, - -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, - -170, 1120, -170, 1120, 1120, 6, 1120, 1120, 1120, -170, - -170, -170, 3, 1120, 49, 1120, 1120, 95, 1120, 1120, - 1120, 1120, 31, 1120, 1120, 82, 55, 26, 23, 10, - 116, -170, 1120, 66, -52, -170, -170, 1120, -170, -170, - -170, 1120, 52, 1120, -100, 1120, 1120, -103, 1120, 51, - 69, 1120, -170, -170, 793, -170, 1120, -8, -170, 139, - -44, -170, -170, 9, -170, -170, 65, -170, 2598, -170, - 75, 1120, 2268, -170, -170, -170, -39, -107, 1120, -170, - -18, 1120, -170, -170, -170, -170, -170, -170, -170, 630, - 59, -170, -170, -32, -56, 1120, -94, -170, 630, -170, - -170, -41, 109, -170, 4583, -170, -170, -104, 1120, -126, - -15, -130, 3758, -69, -72, 4088, 1448, -170, -170, -48, - -55, -170, -170, -170, -170, 57, -170, -117, -170, -170, - -170, -170, -170, 4418, -170, -70, -170, 62, -170, -170, - -170, -170, -151, -60, 1120, 72, -112, -170, 3593, -170, - -170, 3428, -50, -170, -106, 139, -88, -40, 630, 1120, - 139, 3923, -170, -170, -170, -42, 1120, -170, -170, 1120, - 63, 3758, -170, -21, 3758, -170, -170, 4253, -170, -170, - -170, 79, -170, 1120, 81, -51, 3758, 3758, -97, -170, - 3428, -101, 3923, -170, -170, -170, 11, -170, 28, 1120, - 1940, -170, 22, -43, 1120, -170, -11, 1120, -170, -170, - 304, -170, -170, -170, -170, -170, -170, -36, -170, 2433, - 2928, 46, 15, -170, 1776, -170, -87, -58, -170, -79, - -170, 2104, -170, -54, -170, + 3116, -172, -172, -172, -172, -172, 48, -172, -172, -172, + -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, + -172, -172, -172, -172, -172, -172, -172, -172, -172, 232, + -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, + -172, -172, -172, -172, -63, -172, -172, -172, -172, -172, + -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, + -172, 24, 70, 30, -172, -172, -172, -172, -172, -172, + -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, + -172, -172, -172, -172, 41, -172, -172, -172, -172, -172, + -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, + -172, -172, -172, -172, -172, -172, -172, -172, -172, -10, + -81, -172, 118, 18, 1, 67, 160, 214, 196, 458, + -172, -172, -172, 3288, 953, -172, -172, -24, -172, -172, + -172, -172, -3, 5, -172, 64, -47, -172, -20, -172, + -172, -172, -172, 458, -83, -172, -172, -172, -30, 2448, + 2448, 224, -172, 2782, 623, 7, -172, -172, 4, -17, + -172, 71, 1617, -172, -172, 1119, -172, -31, 1119, 1119, + -172, -172, -172, -172, -172, 53, 33, -172, -74, 45, + 21, -172, -172, 1285, -75, 54, -172, -35, -121, 39, + -1, -127, 20, 293, -172, 120, 16, -172, -172, 1119, + -172, -172, -172, -172, -172, 78, 213, 1119, -172, -172, + -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, + -172, 1119, -172, 1119, 1119, 6, 1119, 1119, 1119, -172, + -172, -172, 3, 1119, 49, 1119, 1119, 95, 1119, 1119, + 1119, 1119, 31, 1119, 1119, 82, 55, 26, 23, 10, + 116, -172, 1119, 66, -52, -172, -172, 1119, -172, -172, + -172, 1119, 52, 1119, -100, 1119, 1119, -103, 1119, 51, + 69, 1119, -172, -172, 788, -172, 1119, -8, -172, 141, + -44, -172, -172, 9, -172, -172, 65, -172, 2615, -172, + 75, 1119, 2281, -172, -172, -172, -39, -107, 1119, -172, + -18, 1119, -172, -172, -172, -172, -172, -172, -172, 623, + 59, -172, -172, -32, -56, 1119, -94, -172, 623, -172, + -172, -41, 109, -172, 4624, -172, -172, -104, 1119, -126, + -15, -130, 3789, -69, -72, 4123, 1451, -172, -172, -48, + -55, -172, -172, -172, -172, 57, -172, -117, -172, -172, + -172, -172, -172, 4457, -172, -70, -172, 62, -172, -172, + -172, -172, -151, -60, 1119, 72, -112, -172, 3622, -172, + -172, 3455, -50, -172, -106, 141, -88, -40, 623, 1119, + 141, 3956, -172, -172, -172, -42, 1119, -172, -172, 1119, + 63, 3789, -172, -21, 3789, -172, -172, 4290, -172, -172, + -172, 79, -172, 1119, 81, -51, 3789, 3789, -97, -172, + 3455, -101, 3956, -172, -172, -172, 11, -172, 28, 1119, + 1949, -172, 22, -43, 1119, -172, -11, 1119, -172, -172, + 191, -172, -172, -172, -172, -172, -172, -36, -172, 2448, + 2949, 46, 15, -172, 1783, -172, -87, -58, -172, -79, + -172, 2115, -172, -54, -172, 119, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, @@ -255,79 +299,62 @@ const short GLSLParserTable::action_info [] = { 444, 148, 243, 235, 207, 207, 442, 207, 265, 243, 128, 223, 243, 420, 266, 226, 0, 243, 226, 0, 0, 305, 0, 306, 0, 149, 0, 0, 291, 26, - 0, 244, 0, 0, 142, 0, 304, 244, 0, 0, - 147, 0, 0, 325, 244, 0, 227, 244, 228, 227, - 236, 228, 244, 238, 236, 304, 226, 445, 129, 45, - 292, 0, 293, 273, 0, 207, 224, 0, 224, 307, - 1, 305, 58, 306, 238, 0, 258, 239, 238, 6, - 274, 0, 7, 240, 0, 391, 139, 227, 443, 228, - 305, 0, 306, 0, 366, 224, 275, 0, 239, 414, - 208, 0, 239, 405, 240, 0, 0, 287, 240, 417, - 24, 0, 241, 284, 0, 0, 130, 27, 276, 307, - 210, 402, 211, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 241, -124, 0, 0, 241, 307, -124, - 0, 0, 212, -124, 0, 0, -124, 0, -124, 0, - -91, -124, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 59, 213, 0, 0, 60, 61, 0, 0, 0, - 0, 0, 0, 0, -124, 0, 0, 0, 63, -124, - 0, -124, 0, 0, 131, 0, -124, 0, 0, 0, - 0, 0, 214, 0, 0, 0, 0, 0, 0, 83, - 0, 0, 0, 0, 0, 0, 0, 0, 87, 0, - 0, 0, 215, 216, 0, 0, 0, 217, 0, 1, - 0, 0, 0, 102, 0, -124, 0, 218, 6, -124, - -124, 7, 0, 0, -124, -124, 0, 0, 0, 0, - 0, 0, -124, 0, 0, 0, 0, -124, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 219, 0, 0, - 0, 0, 0, -124, 0, 0, 27, 0, -124, 0, - 0, 0, -124, 0, 0, 0, 0, -124, 0, 0, - 0, 0, 0, 0, 220, 0, 0, -124, 0, 0, + 0, 244, 226, 0, 142, 0, 304, 244, 0, 0, + 147, 0, 0, 325, 244, 304, 227, 244, 228, 227, + 236, 228, 244, 238, 236, 0, 0, 445, 129, 45, + 292, 0, 293, 227, 0, 228, 224, 207, 224, 307, + 0, 305, 58, 306, 238, 1, 258, 239, 238, 0, + 305, 0, 306, 240, 6, 391, 139, 7, 443, 0, + 0, 0, 0, 0, 366, 224, 0, 0, 239, 414, + 208, 0, 239, 405, 240, 0, 1, 287, 240, 417, + 0, 1, 241, 284, 0, 6, 130, 0, 7, 307, + 6, 402, 27, 7, 210, 0, 211, 0, 307, 1, + 0, 0, 0, 241, 0, 0, 0, 241, 6, -124, + -91, 7, 0, 0, 0, 0, 212, -124, -124, 0, + 0, -124, 0, 27, 0, 0, -124, 0, 27, -124, + 0, 0, 0, 0, 0, 0, 213, 0, 0, 24, + 60, 61, 0, 0, 0, 0, 27, 0, 0, -124, + 0, 0, 0, 63, 0, 0, -124, -124, 0, 0, + 0, 0, 131, 0, -124, 0, 214, 0, 0, 0, + 0, 60, 61, 0, 0, 0, 60, 61, 0, 0, + 0, 0, 0, 87, 63, 0, 215, 216, 0, 63, + 59, 217, 0, 273, 60, 61, 0, 0, 102, 0, + -124, 218, 0, 0, -124, -124, 0, 63, -124, 0, + 274, 0, -124, -124, 87, 0, 0, -124, 0, 87, + 0, 0, 0, 0, 0, -124, 275, 0, 83, 102, + 0, 219, 0, 0, 102, 0, 0, 87, -124, 0, + 0, 0, 0, 0, 0, 0, -124, -124, 276, 0, + 0, 0, 102, 0, 0, -124, 0, 0, 220, 0, 0, 0, -124, 0, 0, 0, 0, 0, 0, 0, + -124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 60, 61, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 0, 0, 20, 21, 22, 23, 0, - 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, - 0, 0, 28, 0, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2, 0, 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 0, - 0, 0, 0, 84, 0, 0, 0, 0, 85, 86, - 0, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 103, 104, 105, 0, - 106, 0, 0, 0, 0, 0, 0, 2, 0, 3, - 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 0, 0, 20, 21, - 22, 23, 0, 0, 0, 0, 25, 0, 0, 26, - 0, 0, 0, 0, 0, 28, 0, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 0, 0, 0, 0, 0, 0, 0, 0, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 0, 0, 20, 21, 22, 23, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, + 0, 0, 0, 28, 0, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 0, 0, 0, 0, 84, 0, 0, 0, - 0, 85, 86, 0, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 0, 103, - 104, 105, 0, 106, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 0, 0, 0, 0, 84, 0, 0, 0, 0, 85, + 86, 0, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 0, 103, 104, 105, + 0, 106, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 0, 20, 21, 22, 23, 0, 0, 0, 0, 25, - 0, 0, 26, 277, 0, 0, 0, 0, 28, 0, + 0, 0, 26, 0, 0, 0, 0, 0, 28, 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, 45, 46, 47, 48, 49, 50, 51, 52, @@ -339,170 +366,172 @@ const short GLSLParserTable::action_info [] = { 0, 0, 0, 0, 85, 86, 0, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 0, 103, 104, 105, 0, 106, 0, 0, 0, - 0, 0, 0, 2, 0, 3, 4, 5, 0, 0, + 0, 0, 0, 0, 0, 2, 0, 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 0, 0, 20, 21, 22, 23, 0, 0, - 0, 0, 25, 0, 0, 26, 437, 0, 0, 0, - 0, 28, 0, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 0, 0, 0, - 0, 0, 0, 0, 0, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 438, 0, - 0, 0, 84, 0, 0, 0, 0, 85, 86, 0, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 0, 103, 104, 105, 0, 106, - 0, 0, 0, 0, 0, 0, 163, 2, 0, 3, - 4, 5, 0, 0, 0, 0, 0, 0, 0, 164, - 165, 0, 0, 0, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 0, 0, 20, 21, - 22, 23, 0, 0, 0, 0, 25, 0, 0, 26, - 167, 0, 0, 168, 0, 28, 0, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 0, 0, 0, 0, 0, 0, 169, 0, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 0, 0, 0, 0, 170, 0, 0, - 0, 0, 0, 171, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 0, 0, 0, 0, 84, 0, 0, 0, - 173, 85, 86, 0, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 0, 103, - 104, 105, 0, 106, 0, 0, 0, 174, 166, 0, - 163, 2, 0, 3, 4, 5, 0, 0, 0, 0, - 0, 0, 0, 164, 165, 0, 0, 0, 8, 9, - 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 0, 0, 20, 21, 22, 23, 0, 0, 0, 0, - 25, 0, 0, 26, 167, 0, 0, 168, 0, 28, - 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 0, 0, 0, 0, 0, - 0, 169, 0, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 0, 0, 0, - 0, 170, 0, 0, 0, 0, 0, 171, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 0, 0, 0, 0, - 84, 0, 0, 0, 173, 85, 86, 0, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 0, 103, 104, 105, 0, 254, 0, 0, - 0, 174, 166, 0, 163, 2, 0, 3, 4, 5, - 0, 0, 0, 0, 0, 0, 0, 164, 165, 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 0, 20, 21, 22, 23, - 0, 0, 0, 0, 25, 0, 0, 26, 167, 0, - 0, 168, 0, 28, 0, 30, 31, 32, 33, 34, + 0, 0, 0, 0, 25, 0, 0, 26, 277, 0, + 0, 0, 0, 28, 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 0, - 0, 0, 0, 0, 0, 169, 0, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 0, 0, 0, 0, 170, 0, 0, 0, 0, - 0, 171, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 400, 0, 0, 0, 84, 0, 0, 0, 173, 85, - 86, 0, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 0, 103, 104, 105, - 0, 106, 0, 0, 0, 174, 166, 0, 163, 2, - 0, 3, 4, 5, 0, 0, 0, 0, 0, 0, - 0, 164, 165, 0, 0, 0, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 0, 0, - 20, 21, 22, 23, 0, 0, 0, 0, 25, 0, - 0, 26, 167, 0, 0, 168, 0, 28, 0, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 0, 0, 0, 0, 0, 0, 169, - 0, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 0, 0, 0, 0, 170, - 0, 0, 0, 0, 0, 171, 0, 0, 0, 0, - 0, 0, 172, 0, 0, 0, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 0, 0, 0, 0, 84, 0, - 0, 0, 173, 85, 86, 0, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 0, 103, 104, 105, 0, 106, 0, 0, 0, 174, - 166, 0, 163, 2, 0, 3, 4, 5, 0, 0, - 0, 0, 0, 0, 0, 164, 165, 0, 0, 0, - 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 0, 0, 20, 21, 22, 23, 0, 0, - 0, 0, 25, 0, 0, 26, 167, 0, 0, 168, - 0, 28, 0, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 0, 0, 0, - 0, 0, 0, 169, 0, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 0, - 0, 0, 0, 170, 0, 0, 0, 0, 0, 171, - 0, 0, 0, 0, 0, 0, 446, 0, 0, 0, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 0, 0, - 0, 0, 84, 0, 0, 0, 173, 85, 86, 0, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 0, 103, 104, 105, 0, 106, - 0, 0, 0, 174, 166, 0, 163, 2, 0, 3, - 4, 5, 0, 0, 0, 0, 0, 0, 0, 164, - 165, 0, 0, 0, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 0, 0, 20, 21, - 22, 23, 0, 0, 0, 0, 25, 0, 0, 26, - 167, 0, 0, 168, 0, 28, 0, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 0, 0, 0, 0, 0, 0, 169, 0, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 0, 0, 0, 0, 170, 0, 0, - 0, 0, 0, 171, 0, 0, 0, 0, 0, 0, - 422, 0, 0, 0, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 0, 0, 0, 0, 84, 0, 0, 0, - 173, 85, 86, 0, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 0, 103, - 104, 105, 0, 106, 0, 0, 0, 174, 166, 0, - 163, 2, 0, 3, 4, 5, 0, 0, 0, 0, - 0, 0, 0, 164, 165, 0, 0, 0, 8, 9, - 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 0, 0, 20, 21, 22, 23, 0, 0, 0, 0, - 25, 0, 0, 26, 167, 0, 0, 168, 0, 28, - 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 0, 0, 0, 0, 0, - 0, 169, 0, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 0, 0, 0, - 0, 170, 0, 0, 0, 0, 0, 171, 0, 0, - 0, 0, 0, 0, 452, 0, 0, 0, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 0, 0, 0, 0, - 84, 0, 0, 0, 173, 85, 86, 0, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 0, 103, 104, 105, 0, 106, 0, 0, - 0, 174, 166, 0, 163, 2, 0, 3, 4, 5, - 0, 0, 0, 0, 0, 0, 0, 164, 165, 0, - 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 0, 0, 20, 21, 22, 23, - 0, 0, 0, 0, 25, 0, 0, 26, 167, 0, - 0, 168, 0, 28, 0, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 0, - 0, 0, 0, 0, 0, 169, 0, 45, 46, 47, + 0, 0, 0, 0, 0, 0, 0, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 0, 0, 0, 0, 170, 0, 0, 0, 0, - 0, 171, 0, 0, 0, 0, 0, 0, 296, 0, + 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 0, 0, 0, 0, 84, 0, 0, 0, 173, 85, + 0, 0, 0, 0, 84, 0, 0, 0, 0, 85, 86, 0, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 0, 103, 104, 105, - 0, 106, 0, 0, 0, 174, 166, 0, 1, 0, - 2, 0, 3, 4, 5, 0, 0, 6, 0, 0, - 7, 0, 0, 0, 0, 0, 0, 8, 9, 10, + 0, 106, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 3, 4, 5, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, - 0, 20, 21, 22, 23, 0, 0, 0, 24, 25, - 0, 0, 26, 0, 0, 27, 0, 0, 28, 151, + 0, 20, 21, 22, 23, 0, 0, 0, 0, 25, + 0, 0, 26, 437, 0, 0, 0, 0, 28, 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 0, 0, 0, 0, 0, + 40, 41, 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 0, 0, 0, 59, - 0, 0, 0, 60, 61, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 63, 64, 65, 66, + 53, 54, 55, 56, 57, 58, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 438, 0, 0, 0, 84, + 0, 0, 0, 0, 85, 86, 0, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 103, 104, 105, 0, 106, 0, 0, 0, + 0, 0, 0, 0, 0, 163, 2, 0, 3, 4, + 5, 0, 0, 0, 0, 0, 0, 0, 164, 165, + 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 0, 0, 20, 21, 22, + 23, 0, 0, 0, 0, 25, 0, 0, 26, 167, + 0, 0, 168, 0, 28, 0, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 0, 0, 0, 0, 0, 0, 169, 0, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 0, 0, 0, 0, 170, 0, 0, 0, + 0, 0, 171, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 0, 0, 0, 0, 84, 0, 0, 0, 173, + 85, 86, 0, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 0, 103, 104, + 105, 0, 106, 0, 0, 0, 174, 166, 0, 0, + 0, 163, 2, 0, 3, 4, 5, 0, 0, 0, + 0, 0, 0, 0, 164, 165, 0, 0, 0, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 0, 0, 20, 21, 22, 23, 0, 0, 0, + 0, 25, 0, 0, 26, 167, 0, 0, 168, 0, + 28, 0, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 0, 0, 0, 0, + 0, 0, 169, 0, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, + 0, 0, 170, 0, 0, 0, 0, 0, 171, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 0, 0, 0, + 0, 84, 0, 0, 0, 173, 85, 86, 0, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 0, 103, 104, 105, 0, 254, 0, + 0, 0, 174, 166, 0, 0, 0, 163, 2, 0, + 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, + 164, 165, 0, 0, 0, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 0, 0, 20, + 21, 22, 23, 0, 0, 0, 0, 25, 0, 0, + 26, 167, 0, 0, 168, 0, 28, 0, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 0, 0, 0, 0, 0, 0, 169, 0, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 0, 0, 0, 0, 170, 0, + 0, 0, 0, 0, 171, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 400, 0, 0, 0, 84, 0, 0, + 0, 173, 85, 86, 0, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 0, + 103, 104, 105, 0, 106, 0, 0, 0, 174, 166, + 0, 0, 0, 163, 2, 0, 3, 4, 5, 0, + 0, 0, 0, 0, 0, 0, 164, 165, 0, 0, + 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 0, 0, 20, 21, 22, 23, 0, + 0, 0, 0, 25, 0, 0, 26, 167, 0, 0, + 168, 0, 28, 0, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 0, 0, + 0, 0, 0, 0, 169, 0, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 0, 0, 0, 0, 170, 0, 0, 0, 0, 0, + 171, 0, 0, 0, 0, 0, 0, 172, 0, 0, + 0, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 0, + 0, 0, 0, 84, 0, 0, 0, 173, 85, 86, + 0, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 103, 104, 105, 0, + 106, 0, 0, 0, 174, 166, 0, 0, 0, 163, + 2, 0, 3, 4, 5, 0, 0, 0, 0, 0, + 0, 0, 164, 165, 0, 0, 0, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, + 0, 20, 21, 22, 23, 0, 0, 0, 0, 25, + 0, 0, 26, 167, 0, 0, 168, 0, 28, 0, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 0, 0, 0, 0, 0, 0, + 169, 0, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 0, 0, 0, 0, + 170, 0, 0, 0, 0, 0, 171, 0, 0, 0, + 0, 0, 0, 446, 0, 0, 0, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 0, 0, 83, 0, 84, - 0, 0, 0, 0, 85, 86, 87, 88, 89, 90, + 77, 78, 79, 80, 81, 0, 0, 0, 0, 84, + 0, 0, 0, 173, 85, 86, 0, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 0, 106, 0, 0, 0, + 101, 0, 103, 104, 105, 0, 106, 0, 0, 0, + 174, 166, 0, 0, 0, 163, 2, 0, 3, 4, + 5, 0, 0, 0, 0, 0, 0, 0, 164, 165, + 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 0, 0, 20, 21, 22, + 23, 0, 0, 0, 0, 25, 0, 0, 26, 167, + 0, 0, 168, 0, 28, 0, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 0, 0, 0, 0, 0, 0, 169, 0, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 0, 0, 0, 0, 170, 0, 0, 0, + 0, 0, 171, 0, 0, 0, 0, 0, 0, 422, + 0, 0, 0, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 0, 0, 0, 0, 84, 0, 0, 0, 173, + 85, 86, 0, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 0, 103, 104, + 105, 0, 106, 0, 0, 0, 174, 166, 0, 0, + 0, 163, 2, 0, 3, 4, 5, 0, 0, 0, + 0, 0, 0, 0, 164, 165, 0, 0, 0, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 0, 0, 20, 21, 22, 23, 0, 0, 0, + 0, 25, 0, 0, 26, 167, 0, 0, 168, 0, + 28, 0, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 0, 0, 0, 0, + 0, 0, 169, 0, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, + 0, 0, 170, 0, 0, 0, 0, 0, 171, 0, + 0, 0, 0, 0, 0, 452, 0, 0, 0, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 0, 0, 0, + 0, 84, 0, 0, 0, 173, 85, 86, 0, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 0, 103, 104, 105, 0, 106, 0, + 0, 0, 174, 166, 0, 0, 0, 163, 2, 0, + 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, + 164, 165, 0, 0, 0, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 0, 0, 20, + 21, 22, 23, 0, 0, 0, 0, 25, 0, 0, + 26, 167, 0, 0, 168, 0, 28, 0, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 0, 0, 0, 0, 0, 0, 169, 0, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 0, 0, 0, 0, 170, 0, + 0, 0, 0, 0, 171, 0, 0, 0, 0, 0, + 0, 296, 0, 0, 0, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 0, 0, 0, 0, 84, 0, 0, + 0, 173, 85, 86, 0, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 0, + 103, 104, 105, 0, 106, 0, 0, 0, 174, 166, 0, 0, 0, 1, 0, 2, 0, 3, 4, 5, 0, 0, 6, 0, 0, 7, 0, 0, 0, 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, @@ -513,195 +542,164 @@ const short GLSLParserTable::action_info [] = { 0, 0, 0, 0, 0, 0, 0, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, 0, 59, 0, 0, 0, 60, 61, - 0, 0, 0, 0, 0, 0, 0, 289, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 0, 0, 83, 0, 84, 0, 0, 0, 0, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 0, 106, 0, 0, 0, 0, 0, 0, 1, 0, - 2, 0, 3, 4, 5, 0, 0, 6, 0, 0, - 7, 0, 0, 0, 0, 0, 0, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, - 0, 20, 21, 22, 23, 0, 0, 0, 24, 25, - 0, 0, 26, 0, 0, 27, 0, 0, 28, 151, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 0, 0, 0, 0, 0, - 0, 0, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 0, 0, 0, 59, - 0, 0, 0, 60, 61, 0, 0, 0, 0, 0, - 0, 0, 156, 0, 0, 0, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 0, 0, 83, 0, 84, - 0, 0, 0, 0, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 0, 106, 0, 0, 0, + 0, 106, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 4, 5, 0, 0, 6, + 0, 0, 7, 0, 0, 0, 0, 0, 0, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 0, 0, 20, 21, 22, 23, 0, 0, 0, + 24, 25, 0, 0, 26, 0, 0, 27, 0, 0, + 28, 151, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 0, 0, 0, + 0, 0, 0, 0, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, + 0, 59, 0, 0, 0, 60, 61, 0, 0, 0, + 0, 0, 0, 0, 289, 0, 0, 0, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 0, 0, 83, + 0, 84, 0, 0, 0, 0, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 0, 106, 0, + 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, + 0, 3, 4, 5, 0, 0, 6, 0, 0, 7, + 0, 0, 0, 0, 0, 0, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 0, 0, + 20, 21, 22, 23, 0, 0, 0, 24, 25, 0, + 0, 26, 0, 0, 27, 0, 0, 28, 151, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 0, 0, 0, 0, 0, 0, + 0, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 0, 0, 0, 59, 0, + 0, 0, 60, 61, 0, 0, 0, 0, 0, 0, + 0, 156, 0, 0, 0, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 0, 0, 83, 0, 84, 0, + 0, 0, 0, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 0, 106, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 2, 0, 3, 4, + 5, 0, 0, 6, 0, 0, 7, 0, 0, 0, + 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 0, 0, 20, 21, 22, + 23, 0, 0, 0, 24, 25, 0, 0, 26, 0, + 0, 27, 0, 0, 28, 151, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 0, 0, 0, 0, 0, 0, 0, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 0, 0, 0, 59, 0, 0, 0, 60, + 61, 0, 0, 0, 0, 0, 0, 0, 441, 0, + 0, 0, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 0, 0, 83, 0, 84, 0, 0, 0, 0, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 0, 106, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 2, 0, 3, 4, 5, 0, 0, + 6, 0, 0, 7, 0, 0, 0, 0, 0, 0, + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 0, 0, 20, 21, 22, 23, 0, 0, + 0, 24, 25, 0, 0, 26, 0, 0, 27, 0, + 0, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 0, 0, + 0, 0, 0, 0, 0, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 0, + 0, 0, 59, 0, 0, 0, 60, 61, 0, 0, + 62, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 0, + 83, 0, 84, 0, 0, 0, 0, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 0, 106, + 0, 0, 0, 0, 0, 0, 0, 0, 435, 0, 0, 0, 0, 1, 0, 2, 0, 3, 4, 5, 0, 0, 6, 0, 0, 7, 0, 0, 0, 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 0, 20, 21, 22, 23, 0, 0, 0, 24, 25, 0, 0, 26, 0, 0, - 27, 0, 0, 28, 151, 30, 31, 32, 33, 34, + 27, 0, 0, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 0, 0, 0, 0, 0, 0, 0, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, 0, 59, 0, 0, 0, 60, 61, - 0, 0, 0, 0, 0, 0, 0, 441, 0, 0, - 0, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 0, 0, 83, 0, 84, 0, 0, 0, 0, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 0, 106, 0, 0, 0, 0, 0, 0, 1, 0, - 2, 0, 3, 4, 5, 0, 0, 6, 0, 0, - 7, 0, 0, 0, 0, 0, 0, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, - 0, 20, 21, 22, 23, 0, 0, 0, 24, 25, - 0, 0, 26, 0, 0, 27, 0, 0, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 0, 0, 0, 0, 0, - 0, 0, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 0, 0, 0, 59, - 0, 0, 0, 60, 61, 0, 0, 62, 0, 0, - 0, 0, 0, 0, 0, 0, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 0, 83, 0, 84, - 0, 0, 0, 0, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 0, 106, 0, 0, 0, - 0, 0, 0, 435, 0, 0, 0, 0, 1, 0, - 2, 0, 3, 4, 5, 0, 0, 6, 0, 0, - 7, 0, 0, 0, 0, 0, 0, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, - 0, 20, 21, 22, 23, 0, 0, 0, 24, 25, - 0, 0, 26, 0, 0, 27, 0, 0, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 0, 0, 0, 0, 0, - 0, 0, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 0, 0, 0, 59, - 0, 0, 0, 60, 61, 0, 0, 62, 0, 0, - 0, 0, 0, 0, 0, 0, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 0, 83, 0, 84, - 0, 0, 0, 0, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 0, 106, 0, 0, 0, - 0, 0, 0, 1, 163, 2, 0, 3, 4, 5, - 0, 0, 6, 0, 0, 7, 0, 164, 165, 0, - 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 0, 0, 20, 21, 22, 23, - 0, 0, 0, 24, 25, 0, 0, 26, 167, 0, - 27, 168, 0, 28, 151, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 0, 0, 0, 0, 0, 169, 0, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 0, 0, 0, 59, 170, 0, 0, 60, 61, - 0, 171, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 0, 0, 83, 0, 84, 0, 0, 0, 173, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 0, 106, 0, 0, 0, 174, 166, 0, 1, 163, - 2, 0, 3, 4, 5, 0, 0, 6, 0, 0, - 7, 0, 164, 165, 0, 0, 0, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, - 0, 20, 21, 22, 23, 0, 0, 0, 24, 25, - 0, 0, 26, 167, 0, 27, 168, 0, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 0, 0, 0, 0, 0, - 169, 0, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 0, 0, 0, 59, - 170, 0, 0, 60, 61, 0, 171, 62, 0, 0, - 0, 0, 0, 0, 0, 0, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 338, 0, 83, 0, 84, - 0, 0, 0, 173, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 0, 106, 0, 0, 0, - 174, 166, 0, 1, 163, 2, 327, 3, 4, 5, - 0, 328, 6, 0, 0, 7, 329, 164, 165, 330, - 331, 0, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 332, 0, 20, 21, 22, 23, - 0, 0, 0, 24, 25, 333, 0, 26, 167, 334, - 27, 168, 0, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 0, 0, 335, 0, 0, 169, 0, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 0, 0, 0, 59, 170, 0, 0, 60, 61, - 0, 171, 62, 0, 336, 0, 0, 0, 0, 0, - 0, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 338, 0, 83, 0, 84, 0, 0, 339, 173, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 0, 106, 340, 0, 0, 174, 166, 0, 1, 163, - 2, 327, 3, 4, 5, 0, 328, 6, 0, 0, - 7, 329, 164, 165, 330, 331, 0, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 332, - 0, 20, 21, 22, 23, 0, 0, 0, 24, 25, - 333, 0, 26, 167, 334, 27, 168, 0, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 0, 0, 324, 0, 0, - 169, 0, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 0, 0, 0, 59, - 170, 0, 0, 60, 61, 0, 171, 62, 0, 336, - 0, 0, 0, 0, 0, 0, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 338, 0, 83, 0, 84, - 0, 0, 339, 173, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 0, 106, 340, 0, 0, - 174, 166, 0, 1, 163, 2, 327, 3, 4, 5, - 0, 328, 6, 0, 0, 7, 329, 164, 165, 330, - 331, 0, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 332, 0, 20, 21, 22, 23, - 0, 0, 0, 24, 25, 333, 0, 26, 167, 334, - 27, 168, 0, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 0, 0, 335, 0, 0, 169, 0, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 0, 0, 0, 59, 170, 0, 0, 60, 61, - 0, 171, 62, 0, 336, 0, 0, 396, 0, 0, - 0, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 338, 0, 83, 0, 84, 0, 0, 339, 173, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 0, 106, 340, 0, 0, 174, 166, 0, 1, 163, - 2, 327, 3, 4, 5, 0, 328, 6, 0, 0, - 7, 329, 164, 165, 330, 331, 0, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 332, - 0, 20, 21, 22, 23, 0, 0, 0, 24, 25, - 333, 0, 26, 167, 334, 27, 168, 0, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 0, 0, 335, 0, 0, - 169, 0, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 0, 0, 0, 59, - 170, 0, 0, 60, 61, 0, 171, 62, 0, 336, - 0, 0, 398, 0, 0, 0, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 338, 0, 83, 0, 84, - 0, 0, 339, 173, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 0, 106, 340, 0, 0, - 174, 166, 0, 1, 163, 2, 327, 3, 4, 5, - 0, 328, 6, 0, 0, 7, 329, 164, 165, 330, - 331, 0, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 332, 0, 20, 21, 22, 23, - 0, 0, 0, 24, 25, 333, 0, 26, 167, 334, - 27, 168, 0, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 0, 0, 335, 0, 0, 169, 0, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 0, 0, 0, 59, 170, 0, 0, 60, 61, - 0, 171, 62, 0, 336, 0, 0, 415, 0, 0, + 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 338, 0, 83, 0, 84, 0, 0, 339, 173, 85, + 82, 0, 83, 0, 84, 0, 0, 0, 0, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 0, 106, 340, 0, 0, 174, 166, 0, 1, 163, + 0, 106, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 163, 2, 0, 3, 4, 5, 0, 0, 6, + 0, 0, 7, 0, 164, 165, 0, 0, 0, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 0, 0, 20, 21, 22, 23, 0, 0, 0, + 24, 25, 0, 0, 26, 167, 0, 27, 168, 0, + 28, 151, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 0, 0, 0, + 0, 0, 169, 0, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, + 0, 59, 170, 0, 0, 60, 61, 0, 171, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 0, 0, 83, + 0, 84, 0, 0, 0, 173, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 0, 106, 0, + 0, 0, 174, 166, 0, 0, 0, 1, 163, 2, + 0, 3, 4, 5, 0, 0, 6, 0, 0, 7, + 0, 164, 165, 0, 0, 0, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 0, 0, + 20, 21, 22, 23, 0, 0, 0, 24, 25, 0, + 0, 26, 167, 0, 27, 168, 0, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 0, 0, 0, 0, 0, 169, + 0, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 0, 0, 0, 59, 170, + 0, 0, 60, 61, 0, 171, 62, 0, 0, 0, + 0, 0, 0, 0, 0, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 338, 0, 83, 0, 84, 0, + 0, 0, 173, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 0, 106, 0, 0, 0, 174, + 166, 0, 0, 0, 1, 163, 2, 327, 3, 4, + 5, 0, 328, 6, 0, 0, 7, 329, 164, 165, + 330, 331, 0, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 332, 0, 20, 21, 22, + 23, 0, 0, 0, 24, 25, 333, 0, 26, 167, + 334, 27, 168, 0, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 0, 0, 335, 0, 0, 169, 0, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 0, 0, 0, 59, 170, 0, 0, 60, + 61, 0, 171, 62, 0, 336, 0, 0, 0, 0, + 0, 0, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 338, 0, 83, 0, 84, 0, 0, 339, 173, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 0, 106, 340, 0, 0, 174, 166, 0, 0, + 0, 1, 163, 2, 327, 3, 4, 5, 0, 328, + 6, 0, 0, 7, 329, 164, 165, 330, 331, 0, + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 332, 0, 20, 21, 22, 23, 0, 0, + 0, 24, 25, 333, 0, 26, 167, 334, 27, 168, + 0, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 0, 0, + 324, 0, 0, 169, 0, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 0, + 0, 0, 59, 170, 0, 0, 60, 61, 0, 171, + 62, 0, 336, 0, 0, 0, 0, 0, 0, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 338, 0, + 83, 0, 84, 0, 0, 339, 173, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 0, 106, + 340, 0, 0, 174, 166, 0, 0, 0, 1, 163, 2, 327, 3, 4, 5, 0, 328, 6, 0, 0, 7, 329, 164, 165, 330, 331, 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 332, @@ -712,13 +710,63 @@ const short GLSLParserTable::action_info [] = { 169, 0, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, 0, 59, 170, 0, 0, 60, 61, 0, 171, 62, 0, 336, - 0, 0, 337, 0, 0, 0, 63, 64, 65, 66, + 0, 0, 396, 0, 0, 0, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 338, 0, 83, 0, 84, 0, 0, 339, 173, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 0, 106, 340, 0, 0, - 174, 166, 0, + 174, 166, 0, 0, 0, 1, 163, 2, 327, 3, + 4, 5, 0, 328, 6, 0, 0, 7, 329, 164, + 165, 330, 331, 0, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 332, 0, 20, 21, + 22, 23, 0, 0, 0, 24, 25, 333, 0, 26, + 167, 334, 27, 168, 0, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 0, 0, 335, 0, 0, 169, 0, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 0, 0, 0, 59, 170, 0, 0, + 60, 61, 0, 171, 62, 0, 336, 0, 0, 398, + 0, 0, 0, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 338, 0, 83, 0, 84, 0, 0, 339, + 173, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 0, 106, 340, 0, 0, 174, 166, 0, + 0, 0, 1, 163, 2, 327, 3, 4, 5, 0, + 328, 6, 0, 0, 7, 329, 164, 165, 330, 331, + 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 332, 0, 20, 21, 22, 23, 0, + 0, 0, 24, 25, 333, 0, 26, 167, 334, 27, + 168, 0, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 0, + 0, 335, 0, 0, 169, 0, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 0, 0, 0, 59, 170, 0, 0, 60, 61, 0, + 171, 62, 0, 336, 0, 0, 415, 0, 0, 0, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 338, + 0, 83, 0, 84, 0, 0, 339, 173, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 0, + 106, 340, 0, 0, 174, 166, 0, 0, 0, 1, + 163, 2, 327, 3, 4, 5, 0, 328, 6, 0, + 0, 7, 329, 164, 165, 330, 331, 0, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 332, 0, 20, 21, 22, 23, 0, 0, 0, 24, + 25, 333, 0, 26, 167, 334, 27, 168, 0, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 0, 0, 335, 0, + 0, 169, 0, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 0, 0, 0, + 59, 170, 0, 0, 60, 61, 0, 171, 62, 0, + 336, 0, 0, 337, 0, 0, 0, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 338, 0, 83, 0, + 84, 0, 0, 339, 173, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 0, 106, 340, 0, + 0, 174, 166, 0, 0, 0, 390, 432, 388, 404, 230, 209, 279, 255, 434, 429, 294, 282, 278, 433, 231, 388, 270, 272, 357, 222, @@ -765,79 +813,62 @@ const short GLSLParserTable::action_check [] = { 75, 50, 76, 44, 16, 16, 50, 16, 99, 76, 52, 19, 76, 75, 105, 102, -1, 76, 102, -1, -1, 52, -1, 54, -1, 74, -1, -1, 43, 49, - -1, 111, -1, -1, 100, -1, 17, 111, -1, -1, - 100, -1, -1, 132, 111, -1, 133, 111, 135, 133, - 95, 135, 111, 48, 95, 17, 102, 132, 100, 79, - 75, -1, 77, 20, -1, 16, 103, -1, 103, 100, - 5, 52, 92, 54, 48, -1, 112, 72, 48, 14, - 37, -1, 17, 78, -1, 112, 112, 133, 132, 135, - 52, -1, 54, -1, 112, 103, 53, -1, 72, 132, - 112, -1, 72, 112, 78, -1, -1, 132, 78, 132, - 45, -1, 107, 132, -1, -1, 158, 52, 75, 100, - 1, 132, 3, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 107, 5, -1, -1, 107, 100, 5, - -1, -1, 23, 14, -1, -1, 17, -1, 14, -1, - 112, 17, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 96, 43, -1, -1, 100, 101, -1, -1, -1, - -1, -1, -1, -1, 45, -1, -1, -1, 113, 45, - -1, 52, -1, -1, 50, -1, 52, -1, -1, -1, - -1, -1, 73, -1, -1, -1, -1, -1, -1, 134, - -1, -1, -1, -1, -1, -1, -1, -1, 143, -1, - -1, -1, 93, 94, -1, -1, -1, 98, -1, 5, - -1, -1, -1, 158, -1, 96, -1, 108, 14, 100, - 96, 17, -1, -1, 100, 101, -1, -1, -1, -1, - -1, -1, 113, -1, -1, -1, -1, 113, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 138, -1, -1, - -1, -1, -1, 134, -1, -1, 52, -1, 134, -1, - -1, -1, 143, -1, -1, -1, -1, 143, -1, -1, - -1, -1, -1, -1, 165, -1, -1, 158, -1, -1, + -1, 111, 102, -1, 100, -1, 17, 111, -1, -1, + 100, -1, -1, 132, 111, 17, 133, 111, 135, 133, + 95, 135, 111, 48, 95, -1, -1, 132, 100, 79, + 75, -1, 77, 133, -1, 135, 103, 16, 103, 100, + -1, 52, 92, 54, 48, 5, 112, 72, 48, -1, + 52, -1, 54, 78, 14, 112, 112, 17, 132, -1, + -1, -1, -1, -1, 112, 103, -1, -1, 72, 132, + 112, -1, 72, 112, 78, -1, 5, 132, 78, 132, + -1, 5, 107, 132, -1, 14, 158, -1, 17, 100, + 14, 132, 52, 17, 1, -1, 3, -1, 100, 5, + -1, -1, -1, 107, -1, -1, -1, 107, 14, 5, + 112, 17, -1, -1, -1, -1, 23, 5, 14, -1, + -1, 17, -1, 52, -1, -1, 14, -1, 52, 17, + -1, -1, -1, -1, -1, -1, 43, -1, -1, 45, + 100, 101, -1, -1, -1, -1, 52, -1, -1, 45, + -1, -1, -1, 113, -1, -1, 52, 45, -1, -1, + -1, -1, 50, -1, 52, -1, 73, -1, -1, -1, + -1, 100, 101, -1, -1, -1, 100, 101, -1, -1, + -1, -1, -1, 143, 113, -1, 93, 94, -1, 113, + 96, 98, -1, 20, 100, 101, -1, -1, 158, -1, + 96, 108, -1, -1, 100, 101, -1, 113, 96, -1, + 37, -1, 100, 101, 143, -1, -1, 113, -1, 143, + -1, -1, -1, -1, -1, 113, 53, -1, 134, 158, + -1, 138, -1, -1, 158, -1, -1, 143, 134, -1, + -1, -1, -1, -1, -1, -1, 134, 143, 75, -1, + -1, -1, 158, -1, -1, 143, -1, -1, 165, -1, -1, -1, 158, -1, -1, -1, -1, -1, -1, -1, + 158, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 100, 101, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 113, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 143, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 158, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 7, -1, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, -1, -1, 38, 39, 40, 41, -1, - -1, -1, -1, 46, -1, -1, -1, -1, -1, -1, - -1, -1, 55, -1, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 7, -1, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, -1, - -1, -1, -1, 136, -1, -1, -1, -1, 141, 142, - -1, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, -1, 159, 160, 161, -1, - 163, -1, -1, -1, -1, -1, -1, 7, -1, 9, - 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, -1, -1, 38, 39, - 40, 41, -1, -1, -1, -1, 46, -1, -1, 49, - -1, -1, -1, -1, -1, 55, -1, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, -1, -1, -1, -1, -1, -1, -1, -1, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, -1, -1, 38, 39, 40, 41, + -1, -1, -1, -1, 46, -1, -1, -1, -1, -1, + -1, -1, -1, 55, -1, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, -1, -1, -1, -1, 136, -1, -1, -1, - -1, 141, 142, -1, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, -1, 159, - 160, 161, -1, 163, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + -1, -1, -1, -1, 136, -1, -1, -1, -1, 141, + 142, -1, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, -1, 159, 160, 161, + -1, 163, -1, -1, -1, -1, -1, -1, -1, -1, 7, -1, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, 38, 39, 40, 41, -1, -1, -1, -1, 46, - -1, -1, 49, 50, -1, -1, -1, -1, 55, -1, + -1, -1, 49, -1, -1, -1, -1, -1, 55, -1, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, -1, -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, @@ -849,170 +880,172 @@ const short GLSLParserTable::action_check [] = { -1, -1, -1, -1, 141, 142, -1, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, -1, 159, 160, 161, -1, 163, -1, -1, -1, - -1, -1, -1, 7, -1, 9, 10, 11, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, -1, -1, 38, 39, 40, 41, -1, -1, - -1, -1, 46, -1, -1, 49, 50, -1, -1, -1, - -1, 55, -1, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, -1, -1, -1, - -1, -1, -1, -1, -1, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, -1, + -1, -1, -1, -1, -1, 7, -1, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, -1, - -1, -1, 136, -1, -1, -1, -1, 141, 142, -1, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, -1, 159, 160, 161, -1, 163, - -1, -1, -1, -1, -1, -1, 6, 7, -1, 9, - 10, 11, -1, -1, -1, -1, -1, -1, -1, 19, - 20, -1, -1, -1, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, -1, -1, 38, 39, - 40, 41, -1, -1, -1, -1, 46, -1, -1, 49, - 50, -1, -1, 53, -1, 55, -1, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, -1, -1, -1, -1, -1, -1, 77, -1, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, -1, -1, -1, -1, 97, -1, -1, - -1, -1, -1, 103, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, -1, -1, -1, -1, 136, -1, -1, -1, - 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, -1, 159, - 160, 161, -1, 163, -1, -1, -1, 167, 168, -1, - 6, 7, -1, 9, 10, 11, -1, -1, -1, -1, - -1, -1, -1, 19, 20, -1, -1, -1, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - -1, -1, 38, 39, 40, 41, -1, -1, -1, -1, - 46, -1, -1, 49, 50, -1, -1, 53, -1, 55, - -1, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, -1, -1, -1, -1, -1, - -1, 77, -1, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, -1, -1, -1, - -1, 97, -1, -1, -1, -1, -1, 103, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, -1, -1, -1, -1, - 136, -1, -1, -1, 140, 141, 142, -1, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, -1, 159, 160, 161, -1, 163, -1, -1, - -1, 167, 168, -1, 6, 7, -1, 9, 10, 11, - -1, -1, -1, -1, -1, -1, -1, 19, 20, -1, - -1, -1, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, -1, -1, 38, 39, 40, 41, - -1, -1, -1, -1, 46, -1, -1, 49, 50, -1, - -1, 53, -1, 55, -1, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, -1, - -1, -1, -1, -1, -1, 77, -1, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, -1, -1, -1, -1, 97, -1, -1, -1, -1, - -1, 103, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, -1, -1, -1, 136, -1, -1, -1, 140, 141, - 142, -1, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, -1, 159, 160, 161, - -1, 163, -1, -1, -1, 167, 168, -1, 6, 7, - -1, 9, 10, 11, -1, -1, -1, -1, -1, -1, - -1, 19, 20, -1, -1, -1, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, - 38, 39, 40, 41, -1, -1, -1, -1, 46, -1, - -1, 49, 50, -1, -1, 53, -1, 55, -1, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, -1, -1, -1, -1, -1, -1, 77, - -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, -1, -1, -1, -1, 97, - -1, -1, -1, -1, -1, 103, -1, -1, -1, -1, - -1, -1, 110, -1, -1, -1, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, -1, -1, -1, -1, 136, -1, - -1, -1, 140, 141, 142, -1, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - -1, 159, 160, 161, -1, 163, -1, -1, -1, 167, - 168, -1, 6, 7, -1, 9, 10, 11, -1, -1, - -1, -1, -1, -1, -1, 19, 20, -1, -1, -1, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, -1, -1, 38, 39, 40, 41, -1, -1, - -1, -1, 46, -1, -1, 49, 50, -1, -1, 53, - -1, 55, -1, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, -1, -1, -1, - -1, -1, -1, 77, -1, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, -1, - -1, -1, -1, 97, -1, -1, -1, -1, -1, 103, - -1, -1, -1, -1, -1, -1, 110, -1, -1, -1, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, -1, -1, - -1, -1, 136, -1, -1, -1, 140, 141, 142, -1, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, -1, 159, 160, 161, -1, 163, - -1, -1, -1, 167, 168, -1, 6, 7, -1, 9, - 10, 11, -1, -1, -1, -1, -1, -1, -1, 19, - 20, -1, -1, -1, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, -1, -1, 38, 39, - 40, 41, -1, -1, -1, -1, 46, -1, -1, 49, - 50, -1, -1, 53, -1, 55, -1, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, -1, -1, -1, -1, -1, -1, 77, -1, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, -1, -1, -1, -1, 97, -1, -1, - -1, -1, -1, 103, -1, -1, -1, -1, -1, -1, - 110, -1, -1, -1, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, -1, -1, -1, -1, 136, -1, -1, -1, - 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, -1, 159, - 160, 161, -1, 163, -1, -1, -1, 167, 168, -1, - 6, 7, -1, 9, 10, 11, -1, -1, -1, -1, - -1, -1, -1, 19, 20, -1, -1, -1, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - -1, -1, 38, 39, 40, 41, -1, -1, -1, -1, - 46, -1, -1, 49, 50, -1, -1, 53, -1, 55, - -1, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, -1, -1, -1, -1, -1, - -1, 77, -1, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, -1, -1, -1, - -1, 97, -1, -1, -1, -1, -1, 103, -1, -1, - -1, -1, -1, -1, 110, -1, -1, -1, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, -1, -1, -1, -1, - 136, -1, -1, -1, 140, 141, 142, -1, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, -1, 159, 160, 161, -1, 163, -1, -1, - -1, 167, 168, -1, 6, 7, -1, 9, 10, 11, - -1, -1, -1, -1, -1, -1, -1, 19, 20, -1, -1, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, 38, 39, 40, 41, -1, -1, -1, -1, 46, -1, -1, 49, 50, -1, - -1, 53, -1, 55, -1, 57, 58, 59, 60, 61, + -1, -1, -1, 55, -1, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, -1, - -1, -1, -1, -1, -1, 77, -1, 79, 80, 81, + -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, -1, -1, -1, -1, 97, -1, -1, -1, -1, - -1, 103, -1, -1, -1, -1, -1, -1, 110, -1, + 92, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - -1, -1, -1, -1, 136, -1, -1, -1, 140, 141, + -1, -1, -1, -1, 136, -1, -1, -1, -1, 141, 142, -1, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, -1, 159, 160, 161, - -1, 163, -1, -1, -1, 167, 168, -1, 5, -1, - 7, -1, 9, 10, 11, -1, -1, 14, -1, -1, - 17, -1, -1, -1, -1, -1, -1, 24, 25, 26, + -1, 163, -1, -1, -1, -1, -1, -1, -1, -1, + 7, -1, 9, 10, 11, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, - -1, 38, 39, 40, 41, -1, -1, -1, 45, 46, - -1, -1, 49, -1, -1, 52, -1, -1, 55, 56, + -1, 38, 39, 40, 41, -1, -1, -1, -1, 46, + -1, -1, 49, 50, -1, -1, -1, -1, 55, -1, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, -1, -1, -1, -1, -1, + 67, 68, 69, 70, -1, -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, -1, -1, -1, 96, - -1, -1, -1, 100, 101, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, + 87, 88, 89, 90, 91, 92, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, -1, -1, -1, 136, + -1, -1, -1, -1, 141, 142, -1, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, -1, 159, 160, 161, -1, 163, -1, -1, -1, + -1, -1, -1, -1, -1, 6, 7, -1, 9, 10, + 11, -1, -1, -1, -1, -1, -1, -1, 19, 20, + -1, -1, -1, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, -1, -1, 38, 39, 40, + 41, -1, -1, -1, -1, 46, -1, -1, 49, 50, + -1, -1, 53, -1, 55, -1, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + -1, -1, -1, -1, -1, -1, 77, -1, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, -1, -1, -1, -1, 97, -1, -1, -1, + -1, -1, 103, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, -1, -1, -1, -1, 136, -1, -1, -1, 140, + 141, 142, -1, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, -1, 159, 160, + 161, -1, 163, -1, -1, -1, 167, 168, -1, -1, + -1, 6, 7, -1, 9, 10, 11, -1, -1, -1, + -1, -1, -1, -1, 19, 20, -1, -1, -1, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, -1, -1, 38, 39, 40, 41, -1, -1, -1, + -1, 46, -1, -1, 49, 50, -1, -1, 53, -1, + 55, -1, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, -1, -1, -1, -1, + -1, -1, 77, -1, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, -1, -1, + -1, -1, 97, -1, -1, -1, -1, -1, 103, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, -1, -1, -1, + -1, 136, -1, -1, -1, 140, 141, 142, -1, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, -1, 159, 160, 161, -1, 163, -1, + -1, -1, 167, 168, -1, -1, -1, 6, 7, -1, + 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, + 19, 20, -1, -1, -1, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, -1, -1, 38, + 39, 40, 41, -1, -1, -1, -1, 46, -1, -1, + 49, 50, -1, -1, 53, -1, 55, -1, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, -1, -1, -1, -1, -1, -1, 77, -1, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, -1, -1, -1, -1, 97, -1, + -1, -1, -1, -1, 103, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, -1, -1, -1, 136, -1, -1, + -1, 140, 141, 142, -1, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, -1, + 159, 160, 161, -1, 163, -1, -1, -1, 167, 168, + -1, -1, -1, 6, 7, -1, 9, 10, 11, -1, + -1, -1, -1, -1, -1, -1, 19, 20, -1, -1, + -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, -1, -1, 38, 39, 40, 41, -1, + -1, -1, -1, 46, -1, -1, 49, 50, -1, -1, + 53, -1, 55, -1, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, -1, -1, + -1, -1, -1, -1, 77, -1, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + -1, -1, -1, -1, 97, -1, -1, -1, -1, -1, + 103, -1, -1, -1, -1, -1, -1, 110, -1, -1, + -1, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, -1, + -1, -1, -1, 136, -1, -1, -1, 140, 141, 142, + -1, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, -1, 159, 160, 161, -1, + 163, -1, -1, -1, 167, 168, -1, -1, -1, 6, + 7, -1, 9, 10, 11, -1, -1, -1, -1, -1, + -1, -1, 19, 20, -1, -1, -1, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, + -1, 38, 39, 40, 41, -1, -1, -1, -1, 46, + -1, -1, 49, 50, -1, -1, 53, -1, 55, -1, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, -1, -1, -1, -1, -1, -1, + 77, -1, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, -1, -1, -1, -1, + 97, -1, -1, -1, -1, -1, 103, -1, -1, -1, + -1, -1, -1, 110, -1, -1, -1, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, -1, -1, 134, -1, 136, - -1, -1, -1, -1, 141, 142, 143, 144, 145, 146, + 127, 128, 129, 130, 131, -1, -1, -1, -1, 136, + -1, -1, -1, 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, -1, 163, -1, -1, -1, + 157, -1, 159, 160, 161, -1, 163, -1, -1, -1, + 167, 168, -1, -1, -1, 6, 7, -1, 9, 10, + 11, -1, -1, -1, -1, -1, -1, -1, 19, 20, + -1, -1, -1, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, -1, -1, 38, 39, 40, + 41, -1, -1, -1, -1, 46, -1, -1, 49, 50, + -1, -1, 53, -1, 55, -1, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + -1, -1, -1, -1, -1, -1, 77, -1, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, -1, -1, -1, -1, 97, -1, -1, -1, + -1, -1, 103, -1, -1, -1, -1, -1, -1, 110, + -1, -1, -1, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, -1, -1, -1, -1, 136, -1, -1, -1, 140, + 141, 142, -1, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, -1, 159, 160, + 161, -1, 163, -1, -1, -1, 167, 168, -1, -1, + -1, 6, 7, -1, 9, 10, 11, -1, -1, -1, + -1, -1, -1, -1, 19, 20, -1, -1, -1, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, -1, -1, 38, 39, 40, 41, -1, -1, -1, + -1, 46, -1, -1, 49, 50, -1, -1, 53, -1, + 55, -1, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, -1, -1, -1, -1, + -1, -1, 77, -1, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, -1, -1, + -1, -1, 97, -1, -1, -1, -1, -1, 103, -1, + -1, -1, -1, -1, -1, 110, -1, -1, -1, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, -1, -1, -1, + -1, 136, -1, -1, -1, 140, 141, 142, -1, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, -1, 159, 160, 161, -1, 163, -1, + -1, -1, 167, 168, -1, -1, -1, 6, 7, -1, + 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, + 19, 20, -1, -1, -1, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, -1, -1, 38, + 39, 40, 41, -1, -1, -1, -1, 46, -1, -1, + 49, 50, -1, -1, 53, -1, 55, -1, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, -1, -1, -1, -1, -1, -1, 77, -1, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, -1, -1, -1, -1, 97, -1, + -1, -1, -1, -1, 103, -1, -1, -1, -1, -1, + -1, 110, -1, -1, -1, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, -1, -1, -1, -1, 136, -1, -1, + -1, 140, 141, 142, -1, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, -1, + 159, 160, 161, -1, 163, -1, -1, -1, 167, 168, -1, -1, -1, 5, -1, 7, -1, 9, 10, 11, -1, -1, 14, -1, -1, 17, -1, -1, -1, -1, -1, -1, 24, 25, 26, 27, 28, 29, 30, 31, @@ -1023,29 +1056,80 @@ const short GLSLParserTable::action_check [] = { -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, -1, 100, 101, - -1, -1, -1, -1, -1, -1, -1, 109, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, -1, -1, 134, -1, 136, -1, -1, -1, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - -1, 163, -1, -1, -1, -1, -1, -1, 5, -1, - 7, -1, 9, 10, 11, -1, -1, 14, -1, -1, - 17, -1, -1, -1, -1, -1, -1, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, - -1, 38, 39, 40, 41, -1, -1, -1, 45, 46, - -1, -1, 49, -1, -1, 52, -1, -1, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, -1, -1, -1, -1, -1, - -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, -1, -1, -1, 96, - -1, -1, -1, 100, 101, -1, -1, -1, -1, -1, - -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, -1, -1, 134, -1, 136, - -1, -1, -1, -1, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, -1, 163, -1, -1, -1, + -1, 163, -1, -1, -1, -1, -1, -1, -1, -1, + 5, -1, 7, -1, 9, 10, 11, -1, -1, 14, + -1, -1, 17, -1, -1, -1, -1, -1, -1, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, -1, -1, 38, 39, 40, 41, -1, -1, -1, + 45, 46, -1, -1, 49, -1, -1, 52, -1, -1, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, -1, -1, -1, + -1, -1, -1, -1, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, -1, -1, + -1, 96, -1, -1, -1, 100, 101, -1, -1, -1, + -1, -1, -1, -1, 109, -1, -1, -1, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, -1, -1, 134, + -1, 136, -1, -1, -1, -1, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, + -1, -1, -1, -1, -1, -1, -1, 5, -1, 7, + -1, 9, 10, 11, -1, -1, 14, -1, -1, 17, + -1, -1, -1, -1, -1, -1, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, + 38, 39, 40, 41, -1, -1, -1, 45, 46, -1, + -1, 49, -1, -1, 52, -1, -1, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, -1, -1, -1, -1, -1, -1, + -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, -1, -1, -1, 96, -1, + -1, -1, 100, 101, -1, -1, -1, -1, -1, -1, + -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, -1, -1, 134, -1, 136, -1, + -1, -1, -1, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, -1, 163, -1, -1, -1, -1, + -1, -1, -1, -1, 5, -1, 7, -1, 9, 10, + 11, -1, -1, 14, -1, -1, 17, -1, -1, -1, + -1, -1, -1, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, -1, -1, 38, 39, 40, + 41, -1, -1, -1, 45, 46, -1, -1, 49, -1, + -1, 52, -1, -1, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, -1, -1, -1, 96, -1, -1, -1, 100, + 101, -1, -1, -1, -1, -1, -1, -1, 109, -1, + -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, -1, -1, 134, -1, 136, -1, -1, -1, -1, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, -1, 163, -1, -1, -1, -1, -1, -1, -1, + -1, 5, -1, 7, -1, 9, 10, 11, -1, -1, + 14, -1, -1, 17, -1, -1, -1, -1, -1, -1, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, -1, -1, 38, 39, 40, 41, -1, -1, + -1, 45, 46, -1, -1, 49, -1, -1, 52, -1, + -1, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, -1, -1, + -1, -1, -1, -1, -1, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, -1, + -1, -1, 96, -1, -1, -1, 100, 101, -1, -1, + 104, -1, -1, -1, -1, -1, -1, -1, -1, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, -1, + 134, -1, 136, -1, -1, -1, -1, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, + -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 5, -1, 7, -1, 9, 10, 11, -1, -1, 14, -1, -1, 17, -1, -1, -1, -1, -1, -1, 24, 25, 26, 27, 28, 29, 30, 31, @@ -1056,162 +1140,80 @@ const short GLSLParserTable::action_check [] = { -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, -1, 100, 101, - -1, -1, -1, -1, -1, -1, -1, 109, -1, -1, - -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - -1, -1, 134, -1, 136, -1, -1, -1, -1, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - -1, 163, -1, -1, -1, -1, -1, -1, 5, -1, - 7, -1, 9, 10, 11, -1, -1, 14, -1, -1, - 17, -1, -1, -1, -1, -1, -1, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, - -1, 38, 39, 40, 41, -1, -1, -1, 45, 46, - -1, -1, 49, -1, -1, 52, -1, -1, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, -1, -1, -1, -1, -1, - -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, -1, -1, -1, 96, - -1, -1, -1, 100, 101, -1, -1, 104, -1, -1, - -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, -1, 134, -1, 136, - -1, -1, -1, -1, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, -1, 163, -1, -1, -1, - -1, -1, -1, 0, -1, -1, -1, -1, 5, -1, - 7, -1, 9, 10, 11, -1, -1, 14, -1, -1, - 17, -1, -1, -1, -1, -1, -1, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, - -1, 38, 39, 40, 41, -1, -1, -1, 45, 46, - -1, -1, 49, -1, -1, 52, -1, -1, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, -1, -1, -1, -1, -1, - -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, -1, -1, -1, 96, - -1, -1, -1, 100, 101, -1, -1, 104, -1, -1, - -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, -1, 134, -1, 136, - -1, -1, -1, -1, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, -1, 163, -1, -1, -1, - -1, -1, -1, 5, 6, 7, -1, 9, 10, 11, - -1, -1, 14, -1, -1, 17, -1, 19, 20, -1, - -1, -1, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, -1, -1, 38, 39, 40, 41, - -1, -1, -1, 45, 46, -1, -1, 49, 50, -1, - 52, 53, -1, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - -1, -1, -1, -1, -1, 77, -1, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, -1, -1, -1, 96, 97, -1, -1, 100, 101, - -1, 103, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - -1, -1, 134, -1, 136, -1, -1, -1, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - -1, 163, -1, -1, -1, 167, 168, -1, 5, 6, - 7, -1, 9, 10, 11, -1, -1, 14, -1, -1, - 17, -1, 19, 20, -1, -1, -1, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, - -1, 38, 39, 40, 41, -1, -1, -1, 45, 46, - -1, -1, 49, 50, -1, 52, 53, -1, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, -1, -1, -1, -1, -1, - 77, -1, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, -1, -1, -1, 96, - 97, -1, -1, 100, 101, -1, 103, 104, -1, -1, - -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, -1, 134, -1, 136, - -1, -1, -1, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, -1, 163, -1, -1, -1, - 167, 168, -1, 5, 6, 7, 8, 9, 10, 11, - -1, 13, 14, -1, -1, 17, 18, 19, 20, 21, - 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, -1, 38, 39, 40, 41, - -1, -1, -1, 45, 46, 47, -1, 49, 50, 51, - 52, 53, -1, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - -1, -1, 74, -1, -1, 77, -1, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, -1, -1, -1, 96, 97, -1, -1, 100, 101, - -1, 103, 104, -1, 106, -1, -1, -1, -1, -1, - -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, -1, 134, -1, 136, -1, -1, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - -1, 163, 164, -1, -1, 167, 168, -1, 5, 6, - 7, 8, 9, 10, 11, -1, 13, 14, -1, -1, - 17, 18, 19, 20, 21, 22, -1, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - -1, 38, 39, 40, 41, -1, -1, -1, 45, 46, - 47, -1, 49, 50, 51, 52, 53, -1, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, -1, -1, 74, -1, -1, - 77, -1, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, -1, -1, -1, 96, - 97, -1, -1, 100, 101, -1, 103, 104, -1, 106, - -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, -1, 134, -1, 136, - -1, -1, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, -1, 163, 164, -1, -1, - 167, 168, -1, 5, 6, 7, 8, 9, 10, 11, - -1, 13, 14, -1, -1, 17, 18, 19, 20, 21, - 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, -1, 38, 39, 40, 41, - -1, -1, -1, 45, 46, 47, -1, 49, 50, 51, - 52, 53, -1, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - -1, -1, 74, -1, -1, 77, -1, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, -1, -1, -1, 96, 97, -1, -1, 100, 101, - -1, 103, 104, -1, 106, -1, -1, 109, -1, -1, - -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, -1, 134, -1, 136, -1, -1, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - -1, 163, 164, -1, -1, 167, 168, -1, 5, 6, - 7, 8, 9, 10, 11, -1, 13, 14, -1, -1, - 17, 18, 19, 20, 21, 22, -1, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - -1, 38, 39, 40, 41, -1, -1, -1, 45, 46, - 47, -1, 49, 50, 51, 52, 53, -1, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, -1, -1, 74, -1, -1, - 77, -1, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, -1, -1, -1, 96, - 97, -1, -1, 100, 101, -1, 103, 104, -1, 106, - -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, -1, 134, -1, 136, - -1, -1, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, -1, 163, 164, -1, -1, - 167, 168, -1, 5, 6, 7, 8, 9, 10, 11, - -1, 13, 14, -1, -1, 17, 18, 19, 20, 21, - 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, -1, 38, 39, 40, 41, - -1, -1, -1, 45, 46, 47, -1, 49, 50, 51, - 52, 53, -1, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - -1, -1, 74, -1, -1, 77, -1, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, -1, -1, -1, 96, 97, -1, -1, 100, 101, - -1, 103, 104, -1, 106, -1, -1, 109, -1, -1, + -1, -1, 104, -1, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, -1, 134, -1, 136, -1, -1, 139, 140, 141, + 132, -1, 134, -1, 136, -1, -1, -1, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - -1, 163, 164, -1, -1, 167, 168, -1, 5, 6, + -1, 163, -1, -1, -1, -1, -1, -1, -1, -1, + 5, 6, 7, -1, 9, 10, 11, -1, -1, 14, + -1, -1, 17, -1, 19, 20, -1, -1, -1, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, -1, -1, 38, 39, 40, 41, -1, -1, -1, + 45, 46, -1, -1, 49, 50, -1, 52, 53, -1, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, -1, -1, -1, + -1, -1, 77, -1, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, -1, -1, + -1, 96, 97, -1, -1, 100, 101, -1, 103, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, -1, -1, 134, + -1, 136, -1, -1, -1, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, + -1, -1, 167, 168, -1, -1, -1, 5, 6, 7, + -1, 9, 10, 11, -1, -1, 14, -1, -1, 17, + -1, 19, 20, -1, -1, -1, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, + 38, 39, 40, 41, -1, -1, -1, 45, 46, -1, + -1, 49, 50, -1, 52, 53, -1, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, -1, -1, -1, -1, -1, 77, + -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, -1, -1, -1, 96, 97, + -1, -1, 100, 101, -1, 103, 104, -1, -1, -1, + -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, -1, 134, -1, 136, -1, + -1, -1, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, -1, 163, -1, -1, -1, 167, + 168, -1, -1, -1, 5, 6, 7, 8, 9, 10, + 11, -1, 13, 14, -1, -1, 17, 18, 19, 20, + 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, -1, 38, 39, 40, + 41, -1, -1, -1, 45, 46, 47, -1, 49, 50, + 51, 52, 53, -1, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, -1, -1, 74, -1, -1, 77, -1, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, -1, -1, -1, 96, 97, -1, -1, 100, + 101, -1, 103, 104, -1, 106, -1, -1, -1, -1, + -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, -1, 134, -1, 136, -1, -1, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, -1, 163, 164, -1, -1, 167, 168, -1, -1, + -1, 5, 6, 7, 8, 9, 10, 11, -1, 13, + 14, -1, -1, 17, 18, 19, 20, 21, 22, -1, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, -1, 38, 39, 40, 41, -1, -1, + -1, 45, 46, 47, -1, 49, 50, 51, 52, 53, + -1, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, -1, -1, + 74, -1, -1, 77, -1, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, -1, + -1, -1, 96, 97, -1, -1, 100, 101, -1, 103, + 104, -1, 106, -1, -1, -1, -1, -1, -1, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, -1, + 134, -1, 136, -1, -1, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, + 164, -1, -1, 167, 168, -1, -1, -1, 5, 6, 7, 8, 9, 10, 11, -1, 13, 14, -1, -1, 17, 18, 19, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, @@ -1228,7 +1230,57 @@ const short GLSLParserTable::action_check [] = { -1, -1, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, 164, -1, -1, - 167, 168, -1, + 167, 168, -1, -1, -1, 5, 6, 7, 8, 9, + 10, 11, -1, 13, 14, -1, -1, 17, 18, 19, + 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, -1, 38, 39, + 40, 41, -1, -1, -1, 45, 46, 47, -1, 49, + 50, 51, 52, 53, -1, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, -1, -1, 74, -1, -1, 77, -1, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, -1, -1, -1, 96, 97, -1, -1, + 100, 101, -1, 103, 104, -1, 106, -1, -1, 109, + -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, -1, 134, -1, 136, -1, -1, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, -1, 163, 164, -1, -1, 167, 168, -1, + -1, -1, 5, 6, 7, 8, 9, 10, 11, -1, + 13, 14, -1, -1, 17, 18, 19, 20, 21, 22, + -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, -1, 38, 39, 40, 41, -1, + -1, -1, 45, 46, 47, -1, 49, 50, 51, 52, + 53, -1, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, -1, + -1, 74, -1, -1, 77, -1, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + -1, -1, -1, 96, 97, -1, -1, 100, 101, -1, + 103, 104, -1, 106, -1, -1, 109, -1, -1, -1, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + -1, 134, -1, 136, -1, -1, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, + 163, 164, -1, -1, 167, 168, -1, -1, -1, 5, + 6, 7, 8, 9, 10, 11, -1, 13, 14, -1, + -1, 17, 18, 19, 20, 21, 22, -1, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, -1, 38, 39, 40, 41, -1, -1, -1, 45, + 46, 47, -1, 49, 50, 51, 52, 53, -1, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, -1, -1, 74, -1, + -1, 77, -1, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, -1, -1, -1, + 96, 97, -1, -1, 100, 101, -1, 103, 104, -1, + 106, -1, -1, 109, -1, -1, -1, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, -1, 134, -1, + 136, -1, -1, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, -1, 163, 164, -1, + -1, 167, 168, -1, -1, -1, 3, 54, 14, 3, 15, 12, 3, 12, 35, 54, 12, 15, 8, 54, 15, 14, 3, 12, 3, 12, @@ -1262,3 +1314,4 @@ const short GLSLParserTable::action_check [] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}; +QT_END_NAMESPACE diff --git a/src/libs/glsl/glslparsertable_p.h b/src/libs/glsl/glslparsertable_p.h index cab2f07abe8..1d3f5790b87 100644 --- a/src/libs/glsl/glslparsertable_p.h +++ b/src/libs/glsl/glslparsertable_p.h @@ -1,7 +1,63 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists for the convenience +// of other Qt classes. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + // This file was generated by qlalr - DO NOT EDIT! #ifndef GLSLPARSERTABLE_P_H #define GLSLPARSERTABLE_P_H +#include <QtCore/qglobal.h> + +QT_BEGIN_NAMESPACE + class GLSLParserTable { public: @@ -23,6 +79,7 @@ public: T_CENTROID = 14, T_COLON = 15, T_COMMA = 16, + T_COMMENT = 170, T_CONST = 17, T_CONTINUE = 18, T_DASH = 19, @@ -51,7 +108,7 @@ public: T_ELSE = 42, T_EQUAL = 43, T_EQ_OP = 44, - T_ERROR = 169, + T_ERROR = 171, T_FALSE = 168, T_FLAT = 45, T_FLOAT = 46, @@ -113,6 +170,7 @@ public: T_PERCENT = 102, T_PLUS = 103, T_PRECISION = 104, + T_PREPROC = 169, T_QUESTION = 105, T_RETURN = 106, T_RIGHT_ANGLE = 107, @@ -180,12 +238,12 @@ public: ACCEPT_STATE = 435, RULE_COUNT = 312, STATE_COUNT = 455, - TERMINAL_COUNT = 170, + TERMINAL_COUNT = 172, NON_TERMINAL_COUNT = 82, GOTO_INDEX_OFFSET = 455, - GOTO_INFO_OFFSET = 4753, - GOTO_CHECK_OFFSET = 4753 + GOTO_INFO_OFFSET = 4796, + GOTO_CHECK_OFFSET = 4796 }; static const char *const spell []; @@ -218,5 +276,6 @@ public: }; +QT_END_NAMESPACE #endif // GLSLPARSERTABLE_P_H diff --git a/src/libs/glsl/make-parser.sh b/src/libs/glsl/make-parser.sh index 9fc769e6aef..acd584f121f 100755 --- a/src/libs/glsl/make-parser.sh +++ b/src/libs/glsl/make-parser.sh @@ -2,5 +2,5 @@ me=$(dirname $0) cat $me/specs/glsl.g.in $me/specs/grammar.txt > $me/glsl.g -qlalr --no-lines --no-debug $me/glsl.g +qlalr --qt --no-lines --no-debug $me/glsl.g diff --git a/src/libs/glsl/specs/glsl.g.in b/src/libs/glsl/specs/glsl.g.in index 44c753be9ff..fc7fad9817c 100644 --- a/src/libs/glsl/specs/glsl.g.in +++ b/src/libs/glsl/specs/glsl.g.in @@ -1,3 +1,32 @@ +--------------------------------------------------------------------------- +-- +-- This file is part of Qt Creator +-- +-- Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +-- +-- Contact: Nokia Corporation (qt-info@nokia.com) +-- +-- Commercial Usage +-- +-- Licensees holding valid Qt Commercial licenses may use this file in +-- accordance with the Qt Commercial License Agreement provided with the +-- Software or, alternatively, in accordance with the terms contained in +-- a written agreement between you and Nokia. +-- +-- GNU Lesser General Public License Usage +-- +-- Alternatively, this file may be used under the terms of the GNU Lesser +-- General Public License version 2.1 as published by the Free Software +-- Foundation and appearing in the file LICENSE.LGPL included in the +-- packaging of this file. Please review the following information to +-- ensure the GNU Lesser General Public License version 2.1 requirements +-- will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +-- +-- If you are unsure which license is appropriate for your use, please +-- contact the sales department at http://qt.nokia.com/contact. +--------------------------------------------------------------------------- + +-- -- todo: -- spelling of XOR_OP and CARET @@ -174,11 +203,42 @@ %token XOR_OP "^" %token TRUE "true" %token FALSE "false" +%token PREPROC "preprocessor directive" +%token COMMENT "comment" %token ERROR "error" %start translation_unit /: +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** Commercial Usage +** +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Nokia. +** +** GNU Lesser General Public License Usage +** +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** +**************************************************************************/ + #include "$header" #include "glsllexer.h" #include "glslast.h" @@ -214,6 +274,35 @@ private: :/ /. +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** Commercial Usage +** +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Nokia. +** +** GNU Lesser General Public License Usage +** +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** +**************************************************************************/ + #include "glslparser.h" #include <iostream> diff --git a/src/plugins/glsleditor/GLSLEditor.mimetypes.xml b/src/plugins/glsleditor/GLSLEditor.mimetypes.xml index 377ffa5af07..314dafdd301 100644 --- a/src/plugins/glsleditor/GLSLEditor.mimetypes.xml +++ b/src/plugins/glsleditor/GLSLEditor.mimetypes.xml @@ -5,5 +5,8 @@ <sub-class-of type="text/plain"/> <comment>GLSL file</comment> <glob pattern="*.glsl"/> + <glob pattern="*.frag"/> + <glob pattern="*.fsh"/> + <glob pattern="*.vsh"/> </mime-type> </mime-info> diff --git a/src/plugins/glsleditor/GLSLEditor.pluginspec.in b/src/plugins/glsleditor/GLSLEditor.pluginspec.in index f6435dd4833..2d9be00ce45 100644 --- a/src/plugins/glsleditor/GLSLEditor.pluginspec.in +++ b/src/plugins/glsleditor/GLSLEditor.pluginspec.in @@ -1,4 +1,4 @@ -<plugin name=\"GLSLditor\" version=\"$$QTCREATOR_VERSION\" compatVersion=\"$$QTCREATOR_VERSION\"> +<plugin name=\"GLSLEditor\" version=\"$$QTCREATOR_VERSION\" compatVersion=\"$$QTCREATOR_VERSION\"> <vendor>Nokia Corporation</vendor> <copyright>(C) 2010 Nokia Corporation</copyright> <license> diff --git a/src/plugins/glsleditor/glsleditor.cpp b/src/plugins/glsleditor/glsleditor.cpp index 4cee79db69f..8e583719810 100644 --- a/src/plugins/glsleditor/glsleditor.cpp +++ b/src/plugins/glsleditor/glsleditor.cpp @@ -31,6 +31,7 @@ #include "glsleditoreditable.h" #include "glsleditorconstants.h" #include "glsleditorplugin.h" +#include "glslhighlighter.h" #include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/actionmanager/actioncontainer.h> @@ -89,7 +90,7 @@ GLSLTextEditor::GLSLTextEditor(QWidget *parent) : connect(this, SIGNAL(textChanged()), this, SLOT(updateDocument())); -// baseTextDocument()->setSyntaxHighlighter(new Highlighter(document())); + baseTextDocument()->setSyntaxHighlighter(new Highlighter(document())); // if (m_modelManager) { // m_semanticHighlighter->setModelManager(m_modelManager); @@ -147,8 +148,6 @@ Core::Context GLSLEditorEditable::context() const void GLSLTextEditor::setFontSettings(const TextEditor::FontSettings &fs) { TextEditor::BaseTextEditor::setFontSettings(fs); -#warning set up the GLSL highlighter -#if 0 Highlighter *highlighter = qobject_cast<Highlighter*>(baseTextDocument()->syntaxHighlighter()); if (!highlighter) return; @@ -175,7 +174,6 @@ void GLSLTextEditor::setFontSettings(const TextEditor::FontSettings &fs) highlighter->setFormats(fs.toTextCharFormats(categories)); highlighter->rehighlight(); -#endif } QString GLSLTextEditor::wordUnderCursor() const @@ -202,7 +200,9 @@ void GLSLTextEditor::createToolBar(GLSLEditorEditable *editable) { m_outlineCombo = new QComboBox; m_outlineCombo->setMinimumContentsLength(22); +#ifdef __GNUC__ #warning set up the outline model +#endif // m_outlineCombo->setModel(m_outlineModel); QTreeView *treeView = new QTreeView; @@ -219,10 +219,6 @@ void GLSLTextEditor::createToolBar(GLSLEditorEditable *editable) policy.setHorizontalPolicy(QSizePolicy::Expanding); m_outlineCombo->setSizePolicy(policy); - connect(m_outlineCombo, SIGNAL(activated(int)), this, SLOT(jumpToOutlineElement(int))); - - connect(file(), SIGNAL(changed()), this, SLOT(updateFileName())); - QToolBar *toolBar = static_cast<QToolBar*>(editable->toolBar()); QList<QAction*> actions = toolBar->actions(); diff --git a/src/plugins/glsleditor/glsleditor.pro b/src/plugins/glsleditor/glsleditor.pro index ccb1786d969..6eb0334c2d2 100644 --- a/src/plugins/glsleditor/glsleditor.pro +++ b/src/plugins/glsleditor/glsleditor.pro @@ -14,13 +14,16 @@ glsleditoractionhandler.h \ glsleditorconstants.h \ glsleditoreditable.h \ glsleditorfactory.h \ -glsleditorplugin.h +glsleditorplugin.h \ + glslhighlighter.h SOURCES += \ glsleditor.cpp \ glsleditoractionhandler.cpp \ glsleditoreditable.cpp \ glsleditorfactory.cpp \ -glsleditorplugin.cpp +glsleditorplugin.cpp \ + glslhighlighter.cpp OTHER_FILES += GLSLEditor.mimetypes.xml +RESOURCES += glsleditor.qrc diff --git a/src/plugins/glsleditor/glslhighlighter.cpp b/src/plugins/glsleditor/glslhighlighter.cpp new file mode 100644 index 00000000000..bc9ec107b09 --- /dev/null +++ b/src/plugins/glsleditor/glslhighlighter.cpp @@ -0,0 +1,74 @@ +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** Commercial Usage +** +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Nokia. +** +** GNU Lesser General Public License Usage +** +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** +**************************************************************************/ +#include "glslhighlighter.h" +#include <glsl/glsllexer.h> +#include <glsl/glslparser.h> + +#include <QtCore/QDebug> + +using namespace GLSLEditor; +using namespace GLSLEditor::Internal; + +Highlighter::Highlighter(QTextDocument *parent) + : TextEditor::SyntaxHighlighter(parent) +{ +} + +Highlighter::~Highlighter() +{ + +} + +void Highlighter::setFormats(const QVector<QTextCharFormat> &formats) +{ + qCopy(formats.begin(), formats.end(), m_formats); +} + +void Highlighter::highlightBlock(const QString &text) +{ + const QByteArray data = text.toLatin1(); + GLSL::Lexer lex(data.constData(), data.size()); + lex.setState(qMax(0, previousBlockState())); + lex.setScanKeywords(false); + lex.setScanComments(true); + GLSL::Token tk; + do { + lex.yylex(&tk); + + if (tk.is(GLSL::Parser::T_NUMBER)) + setFormat(tk.position, tk.length, m_formats[GLSLNumberFormat]); + else if (tk.is(GLSL::Parser::T_COMMENT)) + setFormat(tk.position, tk.length, Qt::darkGreen); // ### FIXME: m_formats[GLSLCommentFormat]); + else if (tk.is(GLSL::Parser::T_IDENTIFIER)) { + if (lex.findKeyword(data.constData() + tk.position, tk.length) != GLSL::Parser::T_IDENTIFIER) + setFormat(tk.position, tk.length, m_formats[GLSLKeywordFormat]); + } + } while (tk.isNot(GLSL::Parser::EOF_SYMBOL)); + setCurrentBlockState(lex.state()); +} diff --git a/src/plugins/glsleditor/glslhighlighter.h b/src/plugins/glsleditor/glslhighlighter.h new file mode 100644 index 00000000000..4971ff5bd1c --- /dev/null +++ b/src/plugins/glsleditor/glslhighlighter.h @@ -0,0 +1,72 @@ +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** Commercial Usage +** +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Nokia. +** +** GNU Lesser General Public License Usage +** +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** +**************************************************************************/ +#ifndef GLSLHIGHLIGHTER_H +#define GLSLHIGHLIGHTER_H + +#include <texteditor/syntaxhighlighter.h> + +namespace GLSLEditor { +namespace Internal { + +class Highlighter : public TextEditor::SyntaxHighlighter +{ + Q_OBJECT + +public: + enum Formats { + GLSLNumberFormat, + GLSLStringFormat, + GLSLTypeFormat, + GLSLKeywordFormat, + GLSLOperatorFormat, + GLSLPreprocessorFormat, + GLSLLabelFormat, + GLSLCommentFormat, + GLSLDoxygenCommentFormat, + GLSLDoxygenTagFormat, + GLSLVisualWhitespace, + NumGLSLFormats + }; + + explicit Highlighter(QTextDocument *parent); + virtual ~Highlighter(); + + void setFormats(const QVector<QTextCharFormat> &formats); + +protected: + void highlightBlock(const QString &text); + +private: + QTextCharFormat m_formats[NumGLSLFormats]; +}; + +} // namespace Internal +} // namespace GLSLEditor + +#endif // GLSLHIGHLIGHTER_H -- GitLab