Browse Source

Added value converters for BOOL (true, false, yes, and no) and HEX literal an added HexLiteral support for StextStatementInterpreter ( YAKHMI-413 & YAKHMI-412 )

terfloth@itemis.de 13 years ago
parent
commit
8277e8bb71

+ 1 - 0
plugins/org.yakindu.sct.model.sexec.interpreter/src/org/yakindu/sct/model/sexec/interpreter/stext/StextStatementInterpreter.xtend

@@ -52,6 +52,7 @@ import org.yakindu.sct.model.stext.stext.HexLiteral
 /**
  * 
  * @author andreas muelder - Initial contribution and API
+ * @authos axel terfloth - additions
  * 
  */
 class StextStatementInterpreter extends AbstractStatementInterpreter {

+ 3 - 0
plugins/org.yakindu.sct.model.stext/src/org/yakindu/sct/model/stext/STextRuntimeModule.java

@@ -18,6 +18,9 @@ import de.itemis.xtext.utils.gmf.resource.InjectMembersLazyLinker;
 /**
  * Use this class to register components to be used at runtime / without the
  * Equinox extension registry.
+ * 
+ * @author andreas muelder
+ * @author axel terfloth
  */
 public class STextRuntimeModule extends
 		org.yakindu.sct.model.stext.AbstractSTextRuntimeModule {

+ 7 - 0
plugins/org.yakindu.sct.model.stext/src/org/yakindu/sct/model/stext/conversion/BoolValueConverter.java

@@ -5,6 +5,13 @@ import org.eclipse.xtext.conversion.impl.AbstractLexerBasedConverter;
 import org.eclipse.xtext.nodemodel.INode;
 import org.eclipse.xtext.util.Strings;
 
+
+/**
+ * This boolean value converter recognizes 'true' 'yes' 'false' and 'no' as boolean values.
+ *  
+ * @author axel terfloth
+ *
+ */
 public class BoolValueConverter extends AbstractLexerBasedConverter<Boolean> {
 
 	@Override

+ 9 - 0
plugins/org.yakindu.sct.model.stext/src/org/yakindu/sct/model/stext/conversion/HexValueConverter.java

@@ -5,6 +5,11 @@ import org.eclipse.xtext.conversion.impl.AbstractLexerBasedConverter;
 import org.eclipse.xtext.nodemodel.INode;
 import org.eclipse.xtext.util.Strings;
 
+/**
+ * 
+ * @author axel terfloth
+ *
+ */
 public class HexValueConverter extends AbstractLexerBasedConverter<Integer> {
 
 	public static final String HEX_PREFIX = "0x";
@@ -26,6 +31,10 @@ public class HexValueConverter extends AbstractLexerBasedConverter<Integer> {
 
 	@Override
 	protected String toEscapedString(Integer value) {
+		if (value < 0) { 
+			return "-" + HEX_PREFIX + Integer.toString( value * -1, 16).toUpperCase();
+
+		}
 		return HEX_PREFIX + Integer.toString(value, 16).toUpperCase();
 	}
 	

+ 5 - 0
plugins/org.yakindu.sct.model.stext/src/org/yakindu/sct/model/stext/conversion/StextValueConverterService.java

@@ -4,6 +4,11 @@ import org.eclipse.xtext.common.services.DefaultTerminalConverters;
 import org.eclipse.xtext.conversion.IValueConverter;
 import org.eclipse.xtext.conversion.ValueConverter;
 
+/**
+ * Contributes stext specific value converters
+ * 
+ * @author axel terfloth
+ */
 public class StextValueConverterService extends DefaultTerminalConverters {
 	
 	protected BoolValueConverter boolConverter = new BoolValueConverter();