public static final AttributeValue create(SyntaxTreeNode parent, String text, Parser parser) { AttributeValue result; if (text.indexOf('{') != -1) { result = new AttributeValueTemplate(text, parser, parent); } else if (text.indexOf('}') != -1) { result = new AttributeValueTemplate(text, parser, parent); } else { result = new SimpleAttributeValue(text); result.setParser(parser); result.setParent(parent); } return result; } }
public AttributeValueTemplate(String value, Parser parser, SyntaxTreeNode parent) { setParent(parent); setParser(parser); try { parseAVTemplate(value, parser); } catch (NoSuchElementException e) { reportError(parent, parser, ErrorMsg.ATTR_VAL_TEMPLATE_ERR, value); } }
public String toString() { final StringBuffer buffer = new StringBuffer("AVT:["); final int count = elementCount(); for (int i = 0; i < count; i++) { buffer.append(elementAt(i).toString()); if (i < count - 1) buffer.append(' '); } return buffer.append(']').toString(); }
case IN_EXPR_SQUOTES: case IN_EXPR_DQUOTES: reportError(getParent(), parser, ErrorMsg.ATTR_VAL_TEMPLATE_ERR, text); break; reportError(getParent(), parser, ErrorMsg.ATTR_VAL_TEMPLATE_ERR, text); reportError(getParent(), parser, ErrorMsg.ATTR_VAL_TEMPLATE_ERR, text); addElement(parser.parseExpression(this, tokenizer.nextToken())); addElement(new LiteralExpr(t));
/** * This method is called when the name of the element is known at compile time. * In this case, there is no need to inspect the element name at runtime to * determine if a prefix exists, needs to be generated, etc. */ public void translateLiteral(ClassGenerator classGen, MethodGenerator methodGen) { final ConstantPoolGen cpg = classGen.getConstantPool(); final InstructionList il = methodGen.getInstructionList(); if (!_ignore) { il.append(methodGen.loadHandler()); _name.translate(classGen, methodGen); il.append(DUP2); il.append(methodGen.startElement()); if (_namespace != null) { il.append(methodGen.loadHandler()); il.append(new PUSH(cpg, _prefix)); _namespace.translate(classGen,methodGen); il.append(methodGen.namespace()); } } translateContents(classGen, methodGen); if (!_ignore) { il.append(methodGen.endElement()); } }
public void translate(ClassGenerator classGen, MethodGenerator methodGen) { if (elementCount() == 1) { final Expression exp = (Expression)elementAt(0); exp.translate(classGen, methodGen); il.append(new INVOKESPECIAL(initBuffer)); final Enumeration elements = elements(); while (elements.hasMoreElements()) { final Expression exp = (Expression)elements.nextElement();
public AttributeValueTemplate(String value, Parser parser, SyntaxTreeNode parent) { setParent(parent); setParser(parser); try { parseAVTemplate(value, parser); } catch (NoSuchElementException e) { reportError(parent, parser, ErrorMsg.ATTR_VAL_TEMPLATE_ERR, value); } }
public Type typeCheck(SymbolTable stable) throws TypeCheckError { final Vector contents = getContents(); final int n = contents.size(); for (int i = 0; i < n; i++) { final Expression exp = (Expression)contents.elementAt(i); if (!exp.typeCheck(stable).identicalTo(Type.String)) { contents.setElementAt(new CastExpr(exp, Type.String), i); } } return _type = Type.String; }
public void translate(ClassGenerator classGen, MethodGenerator methodGen) { if (elementCount() == 1) { final Expression exp = (Expression)elementAt(0); exp.translate(classGen, methodGen); il.append(new INVOKESPECIAL(initBuffer)); final Enumeration elements = elements(); while (elements.hasMoreElements()) { final Expression exp = (Expression)elements.nextElement();
case IN_EXPR_SQUOTES: case IN_EXPR_DQUOTES: reportError(getParent(), parser, ErrorMsg.ATTR_VAL_TEMPLATE_ERR, text); break; reportError(getParent(), parser, ErrorMsg.ATTR_VAL_TEMPLATE_ERR, text); reportError(getParent(), parser, ErrorMsg.ATTR_VAL_TEMPLATE_ERR, text); addElement(parser.parseExpression(this, tokenizer.nextToken())); addElement(new LiteralExpr(t));
public String toString() { final StringBuffer buffer = new StringBuffer("AVT:["); final int count = elementCount(); for (int i = 0; i < count; i++) { buffer.append(elementAt(i).toString()); if (i < count - 1) buffer.append(' '); } return buffer.append(']').toString(); }
public AttributeValueTemplate(String value, Parser parser, SyntaxTreeNode parent) { setParent(parent); setParser(parser); try { parseAVTemplate(value, parser); } catch (NoSuchElementException e) { reportError(parent, parser, ErrorMsg.ATTR_VAL_TEMPLATE_ERR, value); } }
public Type typeCheck(SymbolTable stable) throws TypeCheckError { final Vector contents = getContents(); final int n = contents.size(); for (int i = 0; i < n; i++) { final Expression exp = (Expression)contents.elementAt(i); if (!exp.typeCheck(stable).identicalTo(Type.String)) { contents.setElementAt(new CastExpr(exp, Type.String), i); } } return _type = Type.String; }
_format = new AttributeValueTemplate(value, parser, this); _formatNeeded = true; _lang = new AttributeValueTemplate(value, parser, this); _formatNeeded = true; _letterValue = new AttributeValueTemplate(value, parser, this); _formatNeeded = true; _groupingSeparator = new AttributeValueTemplate(value, parser, this); _formatNeeded = true; _groupingSize = new AttributeValueTemplate(value, parser, this); _formatNeeded = true;
public AttributeValueTemplate(String value, Parser parser, SyntaxTreeNode parent) { setParent(parent); setParser(parser); try { parseAVTemplate(value, parser); } catch (NoSuchElementException e) { reportError(parent, parser, ErrorMsg.ATTR_VAL_TEMPLATE_ERR, value); } }
public Type typeCheck(SymbolTable stable) throws TypeCheckError { if (_value != null) { Type tvalue = _value.typeCheck(stable); if (tvalue instanceof RealType == false) { _value = new CastExpr(_value, Type.Real); } } if (_count != null) { _count.typeCheck(stable); } if (_from != null) { _from.typeCheck(stable); } if (_format != null) { _format.typeCheck(stable); } if (_lang != null) { _lang.typeCheck(stable); } if (_letterValue != null) { _letterValue.typeCheck(stable); } if (_groupingSeparator != null) { _groupingSeparator.typeCheck(stable); } if (_groupingSize != null) { _groupingSize.typeCheck(stable); } return Type.Void; }
_namespace = new AttributeValueTemplate(namespace, parser, this); _namespace = new AttributeValueTemplate(namespace, parser, this); new AttributeValueTemplate(namespace, parser, this); _name = new AttributeValueTemplate(name, parser, this);