128void IfStatementAST::accept0(Visitor *visitor)
130 if (visitor->visit(
this)) {
131 accept(condition, visitor);
132 accept(thenClause, visitor);
133 accept(elseClause, visitor);
135 visitor->endVisit(
this);
203BasicTypeAST::BasicTypeAST(
int _token,
const char *_name)
204 : TypeAST(Kind_BasicType), token(_token), name(_name)
207 case GLSLParserTable::T_VOID:
208 case GLSLParserTable::T_BOOL:
209 case GLSLParserTable::T_BVEC2:
210 case GLSLParserTable::T_BVEC3:
211 case GLSLParserTable::T_BVEC4:
215 prec = PrecUnspecified;
303void StructTypeAST::Field::setInnerType(TypeAST *innerType)
307 TypeAST **parent = &type;
308 TypeAST *inner = type;
309 while (inner !=
nullptr) {
310 ArrayTypeAST *array = inner->asArrayType();
313 parent = &(array->elementType);
314 inner = array->elementType;
319List<StructTypeAST::Field *> *StructTypeAST::fixInnerTypes(TypeAST *innerType, List<Field *> *fields)
323 List<Field *> *head = fields->next;
324 List<Field *> *current = head;
326 current->value->setInnerType(innerType);
327 current = current->next;
328 }
while (current && current != head);