Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.etrice.dctools.fsm/src/org/eclipse/etrice/dctools/fsm/ast/tokens')
-rw-r--r--plugins/org.eclipse.etrice.dctools.fsm/src/org/eclipse/etrice/dctools/fsm/ast/tokens/DCBracketToken.xtend53
-rw-r--r--plugins/org.eclipse.etrice.dctools.fsm/src/org/eclipse/etrice/dctools/fsm/ast/tokens/DCTextToken.xtend22
-rw-r--r--plugins/org.eclipse.etrice.dctools.fsm/src/org/eclipse/etrice/dctools/fsm/ast/tokens/DCToken.xtend57
3 files changed, 132 insertions, 0 deletions
diff --git a/plugins/org.eclipse.etrice.dctools.fsm/src/org/eclipse/etrice/dctools/fsm/ast/tokens/DCBracketToken.xtend b/plugins/org.eclipse.etrice.dctools.fsm/src/org/eclipse/etrice/dctools/fsm/ast/tokens/DCBracketToken.xtend
new file mode 100644
index 000000000..073388b5f
--- /dev/null
+++ b/plugins/org.eclipse.etrice.dctools.fsm/src/org/eclipse/etrice/dctools/fsm/ast/tokens/DCBracketToken.xtend
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2018 protos software gmbh (http://www.protos.de).
+ * 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:
+ * Henrik Rentz-Reichert (initial contribution)
+ *
+ *******************************************************************************/
+
+package org.eclipse.etrice.dctools.fsm.ast.tokens
+
+import org.eclipse.etrice.dctools.fsm.ast.tokens.DCBracketToken.BracketKind
+import org.eclipse.xtend.lib.annotations.Data
+
+@Data
+class DCBracketToken extends DCToken {
+
+ enum BracketKind {
+ LEFT_ROUND, RIGHT_ROUND,
+ LEFT_CURLY, RIGHT_CURLY,
+ LEFT_SQUARE, RIGHT_SQUARE
+ }
+
+ static val leftRoundBracket = new DCBracketToken(BracketKind.LEFT_ROUND)
+ static val rightRoundBracket = new DCBracketToken(BracketKind.RIGHT_ROUND)
+ static val leftCurlyBracket = new DCBracketToken(BracketKind.LEFT_CURLY)
+ static val rightCurlyBracket = new DCBracketToken(BracketKind.RIGHT_CURLY)
+ static val leftSquareBracket = new DCBracketToken(BracketKind.LEFT_SQUARE)
+ static val rightSquareBracket = new DCBracketToken(BracketKind.RIGHT_SQUARE)
+
+ static val char2token = #{
+ Character.valueOf('(') -> leftRoundBracket,
+ Character.valueOf(')') -> rightRoundBracket,
+ Character.valueOf('{') -> leftCurlyBracket,
+ Character.valueOf('}') -> rightCurlyBracket,
+ Character.valueOf('[') -> leftSquareBracket,
+ Character.valueOf(']') -> rightSquareBracket
+ }
+
+ BracketKind bracketKind
+
+ private new(BracketKind bk) {
+ super(Kind.BRACKET)
+ this.bracketKind = bk
+ }
+
+ static def getToken(char c) {
+ char2token.get(c)
+ }
+} \ No newline at end of file
diff --git a/plugins/org.eclipse.etrice.dctools.fsm/src/org/eclipse/etrice/dctools/fsm/ast/tokens/DCTextToken.xtend b/plugins/org.eclipse.etrice.dctools.fsm/src/org/eclipse/etrice/dctools/fsm/ast/tokens/DCTextToken.xtend
new file mode 100644
index 000000000..0a119c6ca
--- /dev/null
+++ b/plugins/org.eclipse.etrice.dctools.fsm/src/org/eclipse/etrice/dctools/fsm/ast/tokens/DCTextToken.xtend
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * Copyright (c) 2018 protos software gmbh (http://www.protos.de).
+ * 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:
+ * Henrik Rentz-Reichert (initial contribution)
+ *
+ *******************************************************************************/
+
+package org.eclipse.etrice.dctools.fsm.ast.tokens
+
+import org.eclipse.xtend.lib.annotations.Data
+
+@Data
+class DCTextToken {
+ int begin
+ int length
+ DCToken token
+} \ No newline at end of file
diff --git a/plugins/org.eclipse.etrice.dctools.fsm/src/org/eclipse/etrice/dctools/fsm/ast/tokens/DCToken.xtend b/plugins/org.eclipse.etrice.dctools.fsm/src/org/eclipse/etrice/dctools/fsm/ast/tokens/DCToken.xtend
new file mode 100644
index 000000000..c6dc4ec80
--- /dev/null
+++ b/plugins/org.eclipse.etrice.dctools.fsm/src/org/eclipse/etrice/dctools/fsm/ast/tokens/DCToken.xtend
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2018 protos software gmbh (http://www.protos.de).
+ * 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:
+ * Henrik Rentz-Reichert (initial contribution)
+ *
+ *******************************************************************************/
+
+package org.eclipse.etrice.dctools.fsm.ast.tokens
+
+import org.eclipse.jface.text.rules.IToken
+import org.eclipse.xtend.lib.annotations.Data
+
+@Data
+class DCToken implements IToken {
+
+ enum Kind {
+ COMMENT,
+ STRING,
+ WHITESPACE,
+ PERIOD,
+ STATEMENT_SEP,
+ BRACKET,
+ NUMBER,
+ KEYWORD,
+ IDENTIFIER,
+ OTHER,
+ EOF
+ }
+
+ Kind kind
+
+ override getData() {
+ null
+ }
+
+ override isEOF() {
+ kind===Kind.EOF
+ }
+
+ override isOther() {
+ kind===Kind.OTHER
+ }
+
+ override isUndefined() {
+ false
+ }
+
+ override isWhitespace() {
+ kind===Kind.WHITESPACE
+ }
+
+} \ No newline at end of file

Back to the top