* annotations or the beginning line of the next primitive
* @throws WrongAnnotationException
*/
- public static Primitive extractPrimitive(File file, int beginLineNum,
- ArrayList<String> annotations, IntObj curIdx)
+ public static Primitive extractPrimitive(File file, int beginLineNum, ArrayList<String> annotations, IntObj curIdx)
throws WrongAnnotationException {
if (curIdx.getVal() == annotations.size()) // The current index points
// to the end
}
// Assert that we must have found one primitive
if (primitive == null) {
- WrongAnnotationException
- .err(file, curLineNum,
- "Something is wrong! We must have found one primitve here!\n");
+ WrongAnnotationException.err(file, curLineNum,
+ "Something is wrong! We must have found one primitve here!\n");
}
// Process the current "primitive"
primitive.addLine(trimmedCode);
}
} else {
- WrongAnnotationException
- .err(file, curLineNum,
- "The state annotation should have correct primitive syntax (sub-annotations)");
+ WrongAnnotationException.err(file, curLineNum,
+ "The state annotation should have correct primitive syntax (sub-annotations)");
}
// Deal with other normal line. E.g. y = 1;
if (primitive.contents.size() == 0) { // The content of the primitive is
// empty
- WrongAnnotationException.warning(file, curLineNum, "Primitive "
- + primitive.name + " is empty.");
+ WrongAnnotationException.warning(file, curLineNum, "Primitive " + primitive.name + " is empty.");
}
return primitive;
}
return null;
}
}
+
+ public static boolean isUserDefinedStruct(String type) {
+ // FIXME: We only consider the type is either a one-level pointer or a
+ // struct
+ String bareType = trimSpace(type.replace('*', ' '));
+ return !bareType.equals("int") && !bareType.matches("unsigned\\s+int") && !bareType.equals("unsigned")
+ && !bareType.equals("bool") && !bareType.equals("double") && !bareType.equals("float")
+ && !bareType.equals("void");
+ }
+
+ public static String getPlainType(String type) {
+ // FIXME: We only consider the type is either a one-level pointer or a
+ // struct
+ String bareType = trimSpace(type.replace('*', ' '));
+ return bareType;
+ }
}