structjeclarator: IDENTIFIER
IDENTIFIER LEFTJ3RACKET constant_expression RIGHT_BRACKET
initializer:
assignment_expression
declaration_statement: declaration
statement:
compound_statement simple_statement
// оператор 'goto' и метки не поддерживаются
simple_statement:
declaration__statement
expression_statement
selection_statement
iteration_statement
jump_statement
compound_statement:
LEFT_BRACE RIGHTJRACE
LEFTJ3RACE statement J i st RIGHTJRACE
statement_no_new_scope:
compound_statement_no_new_scope simple_statement
compound_statement_no_new_scope: LEFTJRACE RIGHTJRACE LEFTJRACE statement J ist RIGHTJRACE
statement_list: statement
Приложение А. Грамматика языка
statementjist statement
expressi on_statement: SEMICOLON
expression SEMICOLON
selection_statement:
IF LEFT_PAREN expression RIGHT_PAREN selection_rest_statement
selection_rest_statement: statement ELSE statement statement
// оператор 'switch' не поддерживается
condition: expression
fully_specified_type IDENTIFIER EQUAL initializer
iteration_statement:
WHILE LEFT_PAREN condition RIGHT_PAREN statement_no_new_scope DO statement WHILE LEFT_PAREN expression RIGHT_PAREN SEMICOLON
FOR LEFT_PAREN for_init_statement for_rest_statement RIGHT_PAREN
statement_no_new_scope
for_init_statement: expressi on_statement declaration_statement
conditionopt: condition /* пусто */
for_rest_statement:
conditionopt SEMICOLON conditionopt SEMICOLON expression
jump_statement:
CONTINUE SEMICOLON
BREAK SEMICOLON
RETURN SEMICOLON
RETURN expression SEMICOLON
DISCARD SEMICOLON // только для фрагментного шейдера
// оператор 'goto' не поддерживается
translationjjnit:
external_declaration
translation_unit external_decla ration
external_declaration: function_definition declaration
function_definition:
function_prototype compound_statement_no_new_scope
Приложение Б Справочник функций API
В этом разделе содержатся подробное описание функций OpenGL для создания, компиляции, компоновки шейдеров, написанных на языке шейдеров OpenGL, и манипулирования ими, а также описание функций для работы с дополнительными атрибутами вершин и uniform-переменными.