blob: 77913ab8bbc171876d831358259a5552e3afa061 [file] [log] [blame]
Olli Etuahofc0e2bc2015-04-16 13:39:56 +03001//
2// Copyright (c) 2002-2015 The ANGLE Project Authors. All rights reserved.
3// Use of this source code is governed by a BSD-style license that can be
4// found in the LICENSE file.
5//
Olli Etuahoa6f22092015-05-08 18:31:10 +03006// The SeparateDeclarations function processes declarations, so that in the end each declaration
7// contains only one declarator.
8// This is useful as an intermediate step when initialization needs to be separated from declaration,
9// or when things need to be unfolded out of the initializer.
Olli Etuahofc0e2bc2015-04-16 13:39:56 +030010// Example:
11// int a[1] = int[1](1), b[1] = int[1](2);
12// gets transformed when run through this class into the AST equivalent of:
13// int a[1] = int[1](1);
14// int b[1] = int[1](2);
15
16#ifndef COMPILER_TRANSLATOR_SEPARATEDECLARATIONS_H_
17#define COMPILER_TRANSLATOR_SEPARATEDECLARATIONS_H_
18
19class TIntermNode;
20
Olli Etuahoa6f22092015-05-08 18:31:10 +030021void SeparateDeclarations(TIntermNode *root);
Olli Etuahofc0e2bc2015-04-16 13:39:56 +030022
23#endif // COMPILER_TRANSLATOR_SEPARATEDECLARATIONS_H_