diff options
Diffstat (limited to 'opengl/tools/glgen/src/CFunc.java')
-rw-r--r-- | opengl/tools/glgen/src/CFunc.java | 171 |
1 files changed, 0 insertions, 171 deletions
diff --git a/opengl/tools/glgen/src/CFunc.java b/opengl/tools/glgen/src/CFunc.java deleted file mode 100644 index 4847694..0000000 --- a/opengl/tools/glgen/src/CFunc.java +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Copyright (C) 2006 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import java.util.*; - -public class CFunc { - - String original; - - CType ftype; - String fname; - - List<String> argNames = new ArrayList<String>(); - List<CType> argTypes = new ArrayList<CType>(); - - boolean hasPointerArg = false; - boolean hasTypedPointerArg = false; - - public CFunc(String original) { - this.original = original; - } - - public String getOriginal() { - return original; - } - - public void setName(String fname) { - this.fname = fname; - } - - public String getName() { - return fname; - } - - public void setType(CType ftype) { - this.ftype = ftype; - } - - public CType getType() { - return ftype; - } - - public void addArgument(String argName, CType argType) { - argNames.add(argName); - argTypes.add(argType); - - if (argType.isPointer()) { - hasPointerArg = true; - } - if (argType.isTypedPointer()) { - hasTypedPointerArg = true; - } - } - - public int getNumArgs() { - return argNames.size(); - } - - public int getArgIndex(String name) { - int len = argNames.size(); - for (int i = 0; i < len; i++) { - if (name.equals(argNames.get(i))) { - return i; - } - } - return -1; - } - - public String getArgName(int index) { - return argNames.get(index); - } - - public CType getArgType(int index) { - return argTypes.get(index); - } - - public boolean hasPointerArg() { - return hasPointerArg; - } - - public boolean hasTypedPointerArg() { - return hasTypedPointerArg; - } - - @Override - public String toString() { - String s = "Function " + fname + " returns " + ftype + ": "; - for (int i = 0; i < argNames.size(); i++) { - if (i > 0) { - s += ", "; - } - s += argTypes.get(i) + " " + argNames.get(i); - } - return s; - } - - public static CFunc parseCFunc(String s) { - CFunc cfunc = new CFunc(s); - String[] tokens = s.split("\\s"); - - int i = 0; - CType ftype = new CType(); - String ftypeName = tokens[i++]; - if (ftypeName.equals("const")) { - ftype.setIsConst(true); - ftypeName = tokens[i++]; - } - ftype.setBaseType(ftypeName); - - String fname = tokens[i++]; - if (fname.equals("*")) { - ftype.setIsPointer(true); - fname = tokens[i++]; - } - - cfunc.setName(fname); - cfunc.setType(ftype); - - while (i < tokens.length) { - String tok = tokens[i++]; - - if (tok.equals("(")) { - continue; - } - if (tok.equals(")")) { - break; - } - - CType argType = new CType(); - - String argTypeName = tok; - String argName = ""; - - if (argTypeName.equals("const")) { - argType.setIsConst(true); - argTypeName = tokens[i++]; - } - argType.setBaseType(argTypeName); - - if (argTypeName.equals("void")) { - break; - } - - argName = tokens[i++]; - if (argName.startsWith("*")) { - argType.setIsPointer(true); - argName = argName.substring(1, argName.length()); - } - if (argName.endsWith(",")) { - argName = argName.substring(0, argName.length() - 1); - } - - cfunc.addArgument(argName, argType); - } - - return cfunc; - } -} |