#line 2 "common.nonterminals" /************************************************************************* * Copyright (C) 2010 Tavian Barnes <tavianator@gmail.com> * * * * This file is part of Dimension. * * * * Dimension is free software; you can redistribute it and/or modify it * * under the terms of the GNU General Public License as published by the * * Free Software Foundation; either version 3 of the License, or (at * * your option) any later version. * * * * Dimension is distributed in the hope that it will be useful, but * * WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * * General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see <http://www.gnu.org/licenses/>. * *************************************************************************/ /* Fundamental language elements */ %type <astnode> IDENTIFIER %type <astnode> STRING /* Transformations */ %type <astnode> TRANSFORMATION %type <astnode> TRANSFORMATION_ITEMS %type <astnode> TRANSFORMATION_ITEM /* The camera */ %type <astnode> CAMERA %type <astnode> CAMERA_ITEMS %type <astnode> CAMERA_ITEM %type <astnode> CAMERA_TYPE %type <astnode> CAMERA_VECTOR %type <astnode> CAMERA_MODIFIER /* Objects */ %type <astnode> OBJECT %type <astnode> FINITE_SOLID_OBJECT %type <astnode> BOX %type <astnode> CONE %type <astnode> CYLINDER %type <astnode> MAYBE_OPEN %type <astnode> SPHERE %type <astnode> TORUS %type <astnode> TORUS_MODIFIERS %type <astnode> INFINITE_SOLID_OBJECT %type <astnode> PLANE %type <astnode> CSG_OBJECT %type <astnode> UNION %type <astnode> INTERSECTION %type <astnode> DIFFERENCE %type <astnode> MERGE %type <astnode> OBJECTS %type <astnode> LIGHT_SOURCE /* Object modifiers */ %type <astnode> OBJECT_MODIFIERS %type <astnode> OBJECT_MODIFIER /* Patterns */ %type <astnode> BLOCK_PATTERN_TYPE %type <astnode> CONTINUOUS_PATTERN_TYPE %type <astnode> PATTERN_TYPE /* Textures */ %type <astnode> TEXTURE %type <astnode> TEXTURE_ITEMS /* Pigments */ %type <astnode> PIGMENT %type <astnode> PIGMENT_TYPE %type <astnode> PIGMENT_MODIFIERS %type <astnode> COLOR_LIST2 %type <astnode> COLOR_MAP %type <astnode> COLOR_MAP_ENTRIES %type <astnode> COLOR_MAP_ENTRY %type <astnode> BITMAP_TYPE /* Finishes */ %type <astnode> FINISH %type <astnode> FINISH_ITEMS %type <astnode> REFLECTION %type <astnode> REFLECTION_ITEMS /* Interiors */ %type <astnode> INTERIOR %type <astnode> INTERIOR_ITEMS /* Floats */ %type <astnode> FLOAT %type <astnode> INT %type <astnode> FLOAT_LITERAL /* Vectors */ %type <astnode> VECTOR %type <astnode> VECTOR_LITERAL /* Generalized arithmetic expressions */ %type <astnode> ARITH_EXPR %type <astnode> CONDITIONAL %type <astnode> MAX_LIST %type <astnode> MIN_LIST /* Colors */ %type <astnode> COLOR %type <astnode> COLOR_BODY %type <astnode> COLOR_VECTOR %type <astnode> COLOR_KEYWORD_GROUP %type <astnode> COLOR_KEYWORD_GROUP_INIT