126void IfStatementAST::accept0(Visitor *visitor)
128 if (visitor->visit(
this)) {
129 accept(condition, visitor);
130 accept(thenClause, visitor);
131 accept(elseClause, visitor);
133 visitor->endVisit(
this);
201BasicTypeAST::BasicTypeAST(
int _token,
const char *_name)
202 : TypeAST(Kind_BasicType), token(_token), name(_name)
205 case GLSLParserTable::T_VOID:
206 case GLSLParserTable::T_BOOL:
207 case GLSLParserTable::T_BVEC2:
208 case GLSLParserTable::T_BVEC3:
209 case GLSLParserTable::T_BVEC4:
213 prec = PrecUnspecified;
301void StructTypeAST::Field::setInnerType(TypeAST *innerType)
305 TypeAST **parent = &type;
306 TypeAST *inner = type;
307 while (inner !=
nullptr) {
308 ArrayTypeAST *array = inner->asArrayType();
311 parent = &(array->elementType);
312 inner = array->elementType;
317List<StructTypeAST::Field *> *StructTypeAST::fixInnerTypes(TypeAST *innerType, List<Field *> *fields)
321 List<Field *> *head = fields->next;
322 List<Field *> *current = head;
324 current->value->setInnerType(innerType);
325 current = current->next;
326 }
while (current && current != head);