package com.framsticks.framclipse; import org.eclipse.xtext.common.services.DefaultTerminalConverters; import org.eclipse.xtext.conversion.IValueConverter; import org.eclipse.xtext.conversion.ValueConverter; import org.eclipse.xtext.conversion.ValueConverterException; import org.eclipse.xtext.conversion.impl.AbstractToStringConverter; import org.eclipse.xtext.parsetree.AbstractNode; public class FramScriptValueConverterService extends DefaultTerminalConverters { @ValueConverter(rule = "HEADER_VALUE") public IValueConverter HEADER_VALUE() { return new AbstractToStringConverter() { @Override protected String internalToValue(String s, AbstractNode node) throws ValueConverterException { if (s.startsWith(":~")) { return s.substring(2, s.lastIndexOf('~')).trim(); } else { return s.substring(1).trim(); } } }; } }