/*******************************************************************************
* Copyright (c) 2008 SAP
* see https://research.qkal.sap.corp/mediawiki/index.php/CoMONET
*
* Date: $Date: 2009-04-23 14:54:43 +0200 (Do, 23 Apr 2009) $
* @version $Revision: 6272 $
* @author: $Author: c5106462 $
*******************************************************************************/
package com.sap.furcas.parsergenerator.tcs.t2m.grammar.rules;
import com.sap.furcas.parsergenerator.util.VarStringBuffer;
/**
* defines a simple rule for TCS symbols.
*/
public class SymbolProductionRule extends AbstractAntlr3Rule {
String rulebody;
private static int fixedLength = COLONSTRING.length() + SEMICOLONSTRING.length();
private final int length;
public SymbolProductionRule(String ruleHead, String rulebody) {
super(ruleHead);
this.rulebody = rulebody;
this.length = fixedLength + ruleHead.length() + rulebody.length() + 2;
}
/* (non-Javadoc)
* @see com.sap.mi.textual.grammar.impl.tcs.t2m.grammar.rules.IAntlr3Rule#addRuleBody(java.lang.StringBuffer)
*/
@Override
protected void addRuleBody(VarStringBuffer buf) {
//escape any ' characters
String escaped = rulebody.replaceAll("'", "\\\\'");
buf.append('\'').append(escaped).append('\'');
}
/* (non-Javadoc)
* @see com.sap.mi.textual.grammar.impl.tcs.t2m.grammar.rules.IAntlr3Rule#getLength()
*/
@Override
public int getLength() {
return length;
}
}