| /******************************************************************************* |
| * Copyright (c) 2017 itemis AG (http://www.itemis.eu) and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License 2.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| *******************************************************************************/ |
| package com.itemis.xtext.codebuff; |
| |
| import org.eclipse.xtext.NegatedToken; |
| import org.eclipse.xtext.TerminalRule; |
| import org.eclipse.xtext.UntilToken; |
| import org.eclipse.xtext.util.Strings; |
| |
| /** |
| * @author Holger Schill - Initial contribution and API |
| */ |
| public class CodebuffTerminalRuleToLexerBody extends TerminalRuleToLexerBody { |
| |
| public CodebuffTerminalRuleToLexerBody() { |
| super(); |
| } |
| |
| public static String toLexerBody(TerminalRule rule) { |
| return new CodebuffTerminalRuleToLexerBody().print(rule); |
| } |
| |
| @Override |
| public String caseNegatedToken(NegatedToken object) { |
| result.append("~"); |
| doSwitch(object.getTerminal()); |
| result.append(Strings.emptyIfNull(object.getCardinality())); |
| return ""; |
| } |
| |
| @Override |
| public String caseUntilToken(UntilToken object) { |
| result.append("*?"); |
| doSwitch(object.getTerminal()); |
| return ""; |
| } |
| } |