%%%
%% Jimple Types
%%%
module languages/jimple/Types
imports
languages/jimple/Names
exports
sorts BaseTypeNoName
context-free syntax
"boolean" -> BaseTypeNoName {cons("BooleanType")}
"byte" -> BaseTypeNoName {cons("ByteType")}
"char" -> BaseTypeNoName {cons("CharType")}
"short" -> BaseTypeNoName {cons("ShortType")}
"int" -> BaseTypeNoName {cons("IntType")}
"long" -> BaseTypeNoName {cons("LongType")}
"float" -> BaseTypeNoName {cons("FloatType")}
"double" -> BaseTypeNoName {cons("DoubleType")}
"null_type" -> BaseTypeNoName {cons("NullType")}
sorts NonVoidType
context-free syntax
BaseTypeNoName -> NonVoidType
QuotedName -> NonVoidType {cons("RefType")}
Identifier -> NonVoidType {cons("RefType")}
FullIdentifier -> NonVoidType {cons("RefType")}
NonVoidType "[" "]" -> NonVoidType {cons("ArrayType")}
sorts Type
context-free syntax
"void" -> Type {cons("VoidType")}
NonVoidType -> Type
sorts JimpleType
context-free syntax
"unknown" -> JimpleType {cons("UnknownType")}
NonVoidType -> JimpleType
sorts BaseType
context-free syntax
BaseTypeNoName -> BaseType
ClassName -> BaseType