Jump to: navigation, search

Difference between revisions of "ATL Language Troubleshooter"

 
Line 1: Line 1:
==ATL Language Troubleshooter==
+
=='''Trouble'''                                '''Cause'''                                  '''Solution(s)'''==
'''Trouble'''                                '''Cause'''                                  '''Solution(s)'''
+
# '''Trouble:''' NativeOperation public static org.atl.engine.vm.nativelib.ASMNumber org.atl.engine.vm.nativelib.ASMInteger.operatorMinus(org.atl.engine.vm.StackFrame,org.atl.engine.vm.nativelib.ASMInteger,org.atl.engine.vm.nativelib.ASMNumber)<br/>'''Cause:''' You use negative integer to compare: e.g. ''if self.upper = -1 ...''<br/>'''Solutions:''' Use (0-x) operation: e.g. ''if self.upper = (0-1) ...'' or change your comparaison if it is possible: e.g. ''if self.upper < 0 ...''<br/><br/>
# '''Trouble:''' NativeOperation public static org.atl.engine.vm.nativelib.ASMNumber org.atl.engine.vm.nativelib.ASMInteger.operatorMinus(org.atl.engine.vm.StackFrame,org.atl.engine.vm.nativelib.ASMInteger,org.atl.engine.vm.nativelib.ASMNumber)<br/>'''Cause:''' You use negative integer to compare: e.g. ''if self.upper = -1 ...''<br/>'''Solutions:''' Use (0-x) operation: e.g. ''if self.upper = (0-1) ...'' or change your comparaison if it is possible: e.g. ''if self.upper < 0 ...''
+
# '''Trouble:''' ERROR: could not find operation including on Module having supertypes: [OclAny]) in a called rule<br/>'''Cause:''' Your called rule doesn't return the good type (problably any)<br/>'''Solution:''' Add a return type on your called rule by adding the '''do''' clause: e.g.
 +
 
 +
rule myCalledRule() {
 +
  to
 +
    out : XML!Element...
 +
  do {
 +
    out
 +
  }
 +
}

Revision as of 09:42, 15 May 2006

Trouble Cause Solution(s)

  1. Trouble: NativeOperation public static org.atl.engine.vm.nativelib.ASMNumber org.atl.engine.vm.nativelib.ASMInteger.operatorMinus(org.atl.engine.vm.StackFrame,org.atl.engine.vm.nativelib.ASMInteger,org.atl.engine.vm.nativelib.ASMNumber)
    Cause: You use negative integer to compare: e.g. if self.upper = -1 ...
    Solutions: Use (0-x) operation: e.g. if self.upper = (0-1) ... or change your comparaison if it is possible: e.g. if self.upper < 0 ...

  2. Trouble: ERROR: could not find operation including on Module having supertypes: [OclAny]) in a called rule
    Cause: Your called rule doesn't return the good type (problably any)
    Solution: Add a return type on your called rule by adding the do clause: e.g.
rule myCalledRule() {
 to
   out : XML!Element...
 do {
   out
 }
}