source: java/Framclipse/com.framsticks.framclipse/src/com/framsticks/framclipse/FramScriptValueConverterService.java @ 440

Last change on this file since 440 was 440, checked in by Mateusz Poszwa, 8 years ago
  • Updated Xtext-based Framclipse
  • Deleted previous version of Framclipse
  • Property svn:eol-style set to native
File size: 1.1 KB
Line 
1package com.framsticks.framclipse;
2
3import org.eclipse.xtext.common.services.DefaultTerminalConverters;
4import org.eclipse.xtext.conversion.IValueConverter;
5import org.eclipse.xtext.conversion.ValueConverter;
6import org.eclipse.xtext.conversion.ValueConverterException;
7import org.eclipse.xtext.conversion.impl.AbstractToStringConverter;
8import org.eclipse.xtext.nodemodel.INode;
9
10public class FramScriptValueConverterService extends DefaultTerminalConverters {
11
12        @ValueConverter(rule = "HEADER_VALUE")
13        public IValueConverter<String> HEADER_VALUE() {
14
15                return new AbstractToStringConverter<String>() {
16
17                        @Override
18                        protected String internalToValue(String s, INode node)
19                                        throws ValueConverterException {
20                                String r = s;
21                                if (s.startsWith("~")) {
22                                        r = s.substring(1, s.lastIndexOf('~'));
23                                }
24                                return r.trim().replaceAll("\\~", "~");
25                        }
26
27                };
28        }
29
30        @ValueConverter(rule = "ML_STRING")
31        public IValueConverter<String> ML_STRING() {
32
33                return new AbstractToStringConverter<String>() {
34
35                        @Override
36                        protected String internalToValue(String s, INode node)
37                                        throws ValueConverterException {
38                                return s.substring(3, s.length()-3);
39                        }
40
41                };
42        }
43}
Note: See TracBrowser for help on using the repository browser.