blob: 2b1c818533f2fce733288176ce2814aaa86844b8 [file] [log] [blame]
/*******************************************************************************
* Copyright © 2011, 2013 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*
*******************************************************************************/
package org.eclipse.edt.mof.egl;
import egl.lang.reflect.mof.Containment;
import egl.lang.reflect.mof.EType;
import egl.lang.reflect.mof.MofClass;
import egl.lang.reflect.mof.MofName;
import egl.lang.reflect.mof.Transient;
externalType Expression extends Element type MofClass {
isAbstract=true
}
function getType() returns (EGLType);
end
externalType Literal extends Expression type MofClass { isAbstract=true }
end
externalType PrimitiveTypeLiteral extends Literal type MofClass
value string;
function getObjectValue();
end
externalType BooleanLiteral extends PrimitiveTypeLiteral type MofClass
end
externalType BytesLiteral extends PrimitiveTypeLiteral type MofClass
end
externalType NumericLiteral extends PrimitiveTypeLiteral type MofClass {isAbstract=yes}
isNegated boolean;
end
externalType IntegerLiteral extends NumericLiteral type MofClass
eType EGLType{@MofName{"type"}};
end
externalType FloatingPointLiteral extends NumericLiteral type MofClass
eType EGLType{@MofName{"type"}};
end
externalType DecimalLiteral extends NumericLiteral type MofClass
end
externalType TextTypeLiteral extends PrimitiveTypeLiteral type MofClass
isHex boolean;
end
externalType StringLiteral extends TextTypeLiteral type MofClass
end
externalType MBCharLiteral extends TextTypeLiteral type MofClass
end
externalType DBCharLiteral extends TextTypeLiteral type MofClass
end
externalType CharLiteral extends TextTypeLiteral type MofClass
end
externalType HexLiteral extends PrimitiveTypeLiteral type MofClass
end
externalType NullLiteral extends Literal type MofClass
end
externalType ArrayLiteral extends Literal type MofClass
entries Expression[] {@Containment{true}};
end
externalType LHSExpr extends Expression type MofClass { isAbstract=yes, isInterface=yes }
end
externalType Name extends Expression, LHSExpr type MofClass{ isAbstract=yes }
id string;
function getNameComponents() returns(string[]);
function getBoundElement() returns(Element);
end
externalType InvalidName extends Name type MofClass
end
externalType DanglingReference extends MemberAccess type MofClass
end
externalType MemberName extends Name, FunctionReference, FieldReference type MofClass
member Member;
end
externalType TypeName extends Name type MofClass
_type EGLType {@Transient{true}, @MofName{"type"}};
function getFullyQualifiedName() returns(string);
end
externalType PartName extends TypeName, PartReference type MofClass
packageName string;
function getPart() returns(Part);
end
externalType MemberAccess extends Name, FunctionReference, MemberReference type MofClass
member Member {@Transient{true}};
qualifier Expression {@Containment{true}};
end
externalType TopLevelFunctionName extends PartName type MofClass
end
externalType ThisExpression extends Expression type MofClass
thisObject Element;
end
externalType SuperExpression extends Expression type MofClass
thisObject Element;
end
externalType SetValuesExpression extends Expression type MofClass
target Expression {@Containment{true}};
settings StatementBlock {@Containment{true}};
end
externalType SystemFunctionArgumentMnemonicName extends Name type MofClass
end
externalType MultiOperandExpression extends Expression type MofClass{
isAbstract=true
}
operands Expression[] {@Containment{true}};
operator string;
operation EGLOperation {@Transient{true}};
end
externalType BinaryExpression extends MultiOperandExpression type MofClass
function getLHS() returns(Expression);
function getRHS() returns(Expression);
function setLHS(expr Expression in);
function setRHS(expr Expression in);
end
externalType TernaryExpression extends MultiOperandExpression type MofClass
function getFirst() returns(Expression);
function getSecond() returns(Expression);
function getThird() returns(Expression);
function setFirst(expr Expression in);
function setSecond(expr Expression in);
function setThird(expr Expression in);
end
externalType UnaryExpression extends Expression type MofClass
expression Expression {@Containment{true}};
operator string;
operation EGLOperation {@Transient{true}};
end
externalType ArrayElementMemberAccess extends MemberAccess type MofClass
end
externalType DynamicAccess extends Expression, LHSExpr type MofClass
access Expression {@Containment{true}};
expression Expression {@Containment{true}};
operation EGLOperation {@Transient{true}};
end
externalType Assignment extends Expression type MofClass
LHS LHSExpr {@Containment{true}};
RHS Expression {@Containment{true}};
operator String;
operation EGLOperation {@Transient{true}};
end
externalType ArrayAccess extends Expression, LHSExpr type MofClass
array Expression {@Containment{true}};
index Expression {@Containment{true}};
operation EGLOperation {@Transient{true}};
end
externalType InvocationExpression extends Expression type MofClass { isAbstract=true }
id string;
arguments Expression[] {@Containment{true}};
function getTarget() returns(InvocableElement);
end
externalType NewExpression extends InvocationExpression type MofClass
target EGLConstructor {@Transient{true}};
end
externalType FunctionInvocation extends InvocationExpression type MofClass
target FunctionMember;
function getFunction() returns(FunctionMember);
end
externalType ConstructorInvocation extends InvocationExpression type MofClass
target EGLConstructor {@Transient{true}};
expression Expression {@Containment{true}};
end
externalType DelegateInvocation extends InvocationExpression type MofClass
expression Expression {@Containment{true}};
end
externalType FunctionPartInvocation extends FunctionInvocation type MofClass
packageName string;
functionPart FunctionPart {@Transient{true}};
function getFullyQualifiedName() returns(string);
end
externalType QualifiedFunctionInvocation extends InvocationExpression type MofClass
target FunctionMember {@Transient{true}};
qualifier Expression {@Containment{true}};
end
externalType TypeExpression extends Expression type MofClass {isAbstract=true}
objectExpr Expression {@Containment{true}};
typeSignature string;
eType EGLType;
end
externalType BoxingExpression extends Expression type MofClass
expr Expression {@Containment{true}};
end
externalType AsExpression extends TypeExpression type MofClass
conversionOperation EGLOperation {@Transient{true}};
end
externalType IsAExpression extends TypeExpression type MofClass
end
externalType IsNotExpression extends Expression type MofClass
operation string;
expr Expression {@Containment{true}};
mnemonic string;
end
externalType DeclarationExpression extends Expression type MofClass
fields EGLField[] {@Containment{true}};
initializers Expression[] {@Containment{true}};
end
externalType BuiltInOperationExpression extends InvocationExpression type MofClass
operation BuiltInOperation;
end
externalType ConvertExpression extends BuiltInOperationExpression type MofClass
end
externalType SizeInBytesExpression extends BuiltInOperationExpression type MofClass
end
externalType SizeOfExpression extends BuiltInOperationExpression type MofClass
end
externalType SubstringAccess extends Expression type MofClass
stringExpression Expression {@Containment{true}};
start Expression {@Containment{true}};
_end Expression {@Containment{true}, @MofName{"end"}};
operation EGLOperation {@Transient{true}};
end
externalType ObjectExpressionEntry extends Element type MofClass {
}
id string;
expression expression {@Containment{true}};
end
externalType ObjectExpression extends Expression type MofClass {
}
entries ObjectExpressionEntry[] {@Containment{true}};
end