LeafStringLiteralParser.java
package edu.udel.cis.vsl.tass.ast.parser;
import edu.udel.cis.vsl.tass.ast.IF.expression.StringLiteralNodeIF;
import edu.udel.cis.vsl.tass.ast.IF.type.TypeNodeIF;
import edu.udel.cis.vsl.tass.ast.impl.expression.StringLiteralNode;
import edu.udel.cis.vsl.tass.ast.impl.type.CharacterTypeNode;
import edu.udel.cis.vsl.tass.ast.impl.type.ArrayTypeNode;
class LeafStringLiteralParser extends LeafParser {
public LeafStringLiteralParser(NodeTypes nodeTypes, RefMappers refMappers) {
super(nodeTypes,refMappers);
}
@Override
public NodeParserIF makeInstance() {
return new LeafStringLiteralParser(nodeTypes, refMappers);
}
@Override
public StringLiteralEltWrapper node() {
TypeNodeIF charType =
new CharacterTypeNode(refMappers.getId());
TypeNodeIF stringType =
new ArrayTypeNode(refMappers.getId(),charType);
StringLiteralNode retVal =
new StringLiteralNode(refMappers.getId(),null,stringType,charData);
return new StringLiteralEltWrapper(retVal);
}
}