santiagopg 2003/01/15 06:43:09
Modified: java/src/org/apache/xalan/xsltc/compiler Tag: xslt20
AbsoluteLocationPath.java AbsolutePathPattern.java
AlternativePattern.java AncestorPattern.java
ApplyImports.java ApplyTemplates.java
Attribute.java AttributeSet.java
AttributeValue.java AttributeValueTemplate.java
BinOpExpr.java BooleanCall.java BooleanExpr.java
CallTemplate.java CastExpr.java Choose.java
Comment.java CompilerContext.java
CompilerContextImpl.java ConcatCall.java
ContainsCall.java Copy.java CopyOf.java
DecimalFormatting.java DocumentCall.java
ElementAvailableCall.java EqualityExpr.java
Expression.java Fallback.java FilterExpr.java
FilterParentPath.java
FilteredAbsoluteLocationPath.java ForEach.java
FormatNumberCall.java ForwardPositionExpr.java
FunctionAvailableCall.java FunctionCall.java
IdKeyPattern.java If.java Import.java Include.java
Instruction.java IntExpr.java Key.java KeyCall.java
LangCall.java LiteralAttribute.java
LiteralElement.java LiteralExpr.java
LocationPathPattern.java LogicalExpr.java
Message.java NameBase.java NamespaceAlias.java
Number.java NumberCall.java Otherwise.java
Output.java Param.java ParentLocationPath.java
ParentPattern.java Parser.java Pattern.java
Predicate.java ProcessingInstruction.java
ProcessingInstructionPattern.java RealExpr.java
RelationalExpr.java SimpleAttributeValue.java
Sort.java StartsWithCall.java StaticContext.java
StaticContextImpl.java Step.java StepPattern.java
StringCall.java Stylesheet.java SyntaxTreeNode.java
Template.java Text.java TopLevelElement.java
TransletOutput.java UnaryOpExpr.java
UnionPathExpr.java UnparsedEntityUriCall.java
UnresolvedRef.java UnsupportedElement.java
UseAttributeSets.java ValueOf.java Variable.java
VariableBase.java VariableRefBase.java When.java
Whitespace.java WithParam.java XSLTC.java
XslAttribute.java XslElement.java xpath.cup
Log:
More global changes. Replaced SymbolTable by static and compiler
contexts.
Revision Changes Path
No revision
No revision
1.5.8.1.2.2 +2 -2
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/AbsoluteLocationPath.java
Index: AbsoluteLocationPath.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/AbsoluteLocationPath.java,v
retrieving revision 1.5.8.1.2.1
retrieving revision 1.5.8.1.2.2
diff -u -r1.5.8.1.2.1 -r1.5.8.1.2.2
--- AbsoluteLocationPath.java 13 Jan 2003 22:02:51 -0000 1.5.8.1.2.1
+++ AbsoluteLocationPath.java 15 Jan 2003 14:43:03 -0000 1.5.8.1.2.2
@@ -90,9 +90,9 @@
(_path != null ? _path.toString() : "null") + ')';
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
if (_path != null) {
- final Type ptype = _path.typeCheck(stable);
+ final Type ptype = _path.typeCheck(ccontext);
if (ptype instanceof NodeType) { // promote to node-set
_path = new CastExpr(_path, Type.NodeSet);
}
1.6.2.1.2.2 +2 -2
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/AbsolutePathPattern.java
Index: AbsolutePathPattern.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/AbsolutePathPattern.java,v
retrieving revision 1.6.2.1.2.1
retrieving revision 1.6.2.1.2.2
diff -u -r1.6.2.1.2.1 -r1.6.2.1.2.2
--- AbsolutePathPattern.java 13 Jan 2003 22:02:51 -0000 1.6.2.1.2.1
+++ AbsolutePathPattern.java 15 Jan 2003 14:43:03 -0000 1.6.2.1.2.2
@@ -80,8 +80,8 @@
}
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
- return _left == null ? Type.Root : _left.typeCheck(stable);
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
+ return _left == null ? Type.Root : _left.typeCheck(ccontext);
}
public boolean isWildcard() {
1.2.8.1.2.2 +3 -3
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/AlternativePattern.java
Index: AlternativePattern.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/AlternativePattern.java,v
retrieving revision 1.2.8.1.2.1
retrieving revision 1.2.8.1.2.2
diff -u -r1.2.8.1.2.1 -r1.2.8.1.2.2
--- AlternativePattern.java 13 Jan 2003 22:02:51 -0000 1.2.8.1.2.1
+++ AlternativePattern.java 15 Jan 2003 14:43:03 -0000 1.2.8.1.2.2
@@ -91,9 +91,9 @@
/**
* The type of an '|' is not really defined, hence null is returned.
*/
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
- _left.typeCheck(stable);
- _right.typeCheck(stable);
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
+ _left.typeCheck(ccontext);
+ _right.typeCheck(ccontext);
return null;
}
1.6.2.1.2.2 +3 -3
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/AncestorPattern.java
Index: AncestorPattern.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/AncestorPattern.java,v
retrieving revision 1.6.2.1.2.1
retrieving revision 1.6.2.1.2.2
diff -u -r1.6.2.1.2.1 -r1.6.2.1.2.2
--- AncestorPattern.java 13 Jan 2003 22:02:51 -0000 1.6.2.1.2.1
+++ AncestorPattern.java 15 Jan 2003 14:43:03 -0000 1.6.2.1.2.2
@@ -103,11 +103,11 @@
_right.reduceKernelPattern();
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
if (_left != null) {
- _left.typeCheck(stable);
+ _left.typeCheck(ccontext);
}
- return _right.typeCheck(stable);
+ return _right.typeCheck(ccontext);
}
public void translate(ClassGenerator classGen, MethodGenerator
methodGen) {
1.10.2.1.2.3 +2 -2
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ApplyImports.java
Index: ApplyImports.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ApplyImports.java,v
retrieving revision 1.10.2.1.2.2
retrieving revision 1.10.2.1.2.3
diff -u -r1.10.2.1.2.2 -r1.10.2.1.2.3
--- ApplyImports.java 13 Jan 2003 22:02:51 -0000 1.10.2.1.2.2
+++ ApplyImports.java 15 Jan 2003 14:43:03 -0000 1.10.2.1.2.3
@@ -151,8 +151,8 @@
/**
* Type-check the attributes/contents of an <xsl:apply-imports/> element.
*/
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
- typeCheckContents(stable); // with-params
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
+ typeCheckContents(ccontext); // with-params
return Type.Void;
}
1.14.2.1.2.4 +4 -4
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ApplyTemplates.java
Index: ApplyTemplates.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ApplyTemplates.java,v
retrieving revision 1.14.2.1.2.3
retrieving revision 1.14.2.1.2.4
diff -u -r1.14.2.1.2.3 -r1.14.2.1.2.4
--- ApplyTemplates.java 13 Jan 2003 22:02:51 -0000 1.14.2.1.2.3
+++ ApplyTemplates.java 15 Jan 2003 14:43:03 -0000 1.14.2.1.2.4
@@ -110,21 +110,21 @@
parseContents(ccontext);// with-params
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
if (_select != null) {
- _type = _select.typeCheck(stable);
+ _type = _select.typeCheck(ccontext);
if (_type instanceof NodeType || _type instanceof ReferenceType) {
_select = new CastExpr(_select, Type.NodeSet);
_type = Type.NodeSet;
}
if (_type instanceof NodeSetType||_type instanceof ResultTreeType) {
- typeCheckContents(stable); // with-params
+ typeCheckContents(ccontext); // with-params
return Type.Void;
}
throw new TypeCheckError(this);
}
else {
- typeCheckContents(stable); // with-params
+ typeCheckContents(ccontext); // with-params
return Type.Void;
}
}
1.4.12.1.2.2 +0 -0
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Attribute.java
Index: Attribute.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Attribute.java,v
retrieving revision 1.4.12.1.2.1
retrieving revision 1.4.12.1.2.2
diff -u -r1.4.12.1.2.1 -r1.4.12.1.2.2
1.12.2.1.2.4 +9 -9
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/AttributeSet.java
Index: AttributeSet.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/AttributeSet.java,v
retrieving revision 1.12.2.1.2.3
retrieving revision 1.12.2.1.2.4
diff -u -r1.12.2.1.2.3 -r1.12.2.1.2.4
--- AttributeSet.java 13 Jan 2003 22:02:51 -0000 1.12.2.1.2.3
+++ AttributeSet.java 15 Jan 2003 14:43:03 -0000 1.12.2.1.2.4
@@ -119,6 +119,7 @@
*/
public void parse(CompilerContext ccontext) {
final Parser parser = ccontext.getParser();
+ final StaticContextImpl scontext = getStaticContext();
// Get this attribute set's name
_name = parser.getQNameIgnoreDefaultNs(getAttribute("name"));
@@ -137,10 +138,10 @@
// <xsl:attribute> elements. Other elements cause an error.
final ArrayList contents = getContents();
final int count = contents.size();
- for (int i=0; i<count; i++) {
+ for (int i = 0; i < count; i++) {
SyntaxTreeNode child = (SyntaxTreeNode)contents.get(i);
if (child instanceof XslAttribute) {
- parser.getSymbolTable().setCurrentNode(child);
+ scontext.setCurrentNode(child);
child.parse(ccontext);
}
else if (child instanceof Text) {
@@ -152,24 +153,23 @@
}
}
- // Point the symbol table back at us...
- parser.getSymbolTable().setCurrentNode(this);
+ // Set new "current" node in static context;
+ scontext.setCurrentNode(this);
}
/**
* Type check the contents of this element
*/
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
-
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
if (_ignore) return (Type.Void);
// _mergeSet Point to any previous definition of this attribute set
- _mergeSet = stable.addAttributeSet(this);
+ _mergeSet = getStaticContext().addAttributeSet(this);
_method = AttributeSetPrefix + getXSLTC().nextAttributeSetSerial();
- if (_useSets != null) _useSets.typeCheck(stable);
- typeCheckContents(stable);
+ if (_useSets != null) _useSets.typeCheck(ccontext);
+ typeCheckContents(ccontext);
return Type.Void;
}
1.2.2.1.2.2 +0 -0
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/AttributeValue.java
Index: AttributeValue.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/AttributeValue.java,v
retrieving revision 1.2.2.1.2.1
retrieving revision 1.2.2.1.2.2
diff -u -r1.2.2.1.2.1 -r1.2.2.1.2.2
1.6.2.1.2.3 +2 -2
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/AttributeValueTemplate.java
Index: AttributeValueTemplate.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/AttributeValueTemplate.java,v
retrieving revision 1.6.2.1.2.2
retrieving revision 1.6.2.1.2.3
diff -u -r1.6.2.1.2.2 -r1.6.2.1.2.3
--- AttributeValueTemplate.java 13 Jan 2003 22:02:51 -0000
1.6.2.1.2.2
+++ AttributeValueTemplate.java 15 Jan 2003 14:43:04 -0000
1.6.2.1.2.3
@@ -142,12 +142,12 @@
return(result);
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
final ArrayList contents = getContents();
final int n = contents.size();
for (int i = 0; i < n; i++) {
final Expression exp = (Expression)contents.get(i);
- if (!exp.typeCheck(stable).identicalTo(Type.String)) {
+ if (!exp.typeCheck(ccontext).identicalTo(Type.String)) {
contents.set(i, new CastExpr(exp, Type.String));
}
}
1.7.8.1.2.3 +6 -6
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/BinOpExpr.java
Index: BinOpExpr.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/BinOpExpr.java,v
retrieving revision 1.7.8.1.2.2
retrieving revision 1.7.8.1.2.3
diff -u -r1.7.8.1.2.2 -r1.7.8.1.2.3
--- BinOpExpr.java 13 Jan 2003 22:02:51 -0000 1.7.8.1.2.2
+++ BinOpExpr.java 15 Jan 2003 14:43:04 -0000 1.7.8.1.2.3
@@ -97,12 +97,12 @@
return false;
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
- final Type tleft = _left.typeCheck(stable);
- final Type tright = _right.typeCheck(stable);
- final MethodType ptype = lookupPrimop(stable, Ops[_op],
- new MethodType(Type.Void,
- tleft, tright));
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
+ final Type tleft = _left.typeCheck(ccontext);
+ final Type tright = _right.typeCheck(ccontext);
+ final MethodType ptype = lookupPrimop(getStaticContext(), Ops[_op],
+ new MethodType(Type.Void, tleft, tright));
+
if (ptype != null) {
final Type arg1 = (Type) ptype.argsType().get(0);
if (!arg1.identicalTo(tleft)) {
1.3.8.1.2.2 +3 -3
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/BooleanCall.java
Index: BooleanCall.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/BooleanCall.java,v
retrieving revision 1.3.8.1.2.1
retrieving revision 1.3.8.1.2.2
diff -u -r1.3.8.1.2.1 -r1.3.8.1.2.2
--- BooleanCall.java 10 Jan 2003 16:50:38 -0000 1.3.8.1.2.1
+++ BooleanCall.java 15 Jan 2003 14:43:04 -0000 1.3.8.1.2.2
@@ -77,8 +77,8 @@
_arg = argument(0);
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
- _arg.typeCheck(stable);
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
+ _arg.typeCheck(ccontext);
return _type = Type.Boolean;
}
1.3.8.1.2.1 +2 -2
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/BooleanExpr.java
Index: BooleanExpr.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/BooleanExpr.java,v
retrieving revision 1.3.8.1
retrieving revision 1.3.8.1.2.1
diff -u -r1.3.8.1 -r1.3.8.1.2.1
--- BooleanExpr.java 14 Aug 2002 19:21:32 -0000 1.3.8.1
+++ BooleanExpr.java 15 Jan 2003 14:43:04 -0000 1.3.8.1.2.1
@@ -78,7 +78,7 @@
_value = value;
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
_type = Type.Boolean;
return _type;
}
1.10.2.1.2.2 +4 -3
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/CallTemplate.java
Index: CallTemplate.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/CallTemplate.java,v
retrieving revision 1.10.2.1.2.1
retrieving revision 1.10.2.1.2.2
diff -u -r1.10.2.1.2.1 -r1.10.2.1.2.2
--- CallTemplate.java 13 Jan 2003 22:02:51 -0000 1.10.2.1.2.1
+++ CallTemplate.java 15 Jan 2003 14:43:04 -0000 1.10.2.1.2.2
@@ -88,10 +88,11 @@
/**
* Verify that a template with this name exists.
*/
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
- final Template template = stable.lookupTemplate(_name);
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
+ final Template template = getStaticContext().getTemplate(_name);
+
if (template != null) {
- typeCheckContents(stable);
+ typeCheckContents(ccontext);
}
else {
ErrorMsg err = new ErrorMsg(ErrorMsg.TEMPLATE_UNDEF_ERR,_name,this);
1.14.2.1.2.4 +3 -3
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/CastExpr.java
Index: CastExpr.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/CastExpr.java,v
retrieving revision 1.14.2.1.2.3
retrieving revision 1.14.2.1.2.4
diff -u -r1.14.2.1.2.3 -r1.14.2.1.2.4
--- CastExpr.java 13 Jan 2003 22:02:51 -0000 1.14.2.1.2.3
+++ CastExpr.java 15 Jan 2003 14:43:04 -0000 1.14.2.1.2.4
@@ -165,7 +165,7 @@
// check if conversion is valid
setParent(left.getParent());
left.setParent(this);
- typeCheck(left.getParser().getSymbolTable());
+ typeCheck(getCompilerContext());
}
public Expression getExpr() {
@@ -194,10 +194,10 @@
* type checking, but typeCheck() is usually not called on them.
* As a result, this method is called from the constructor.
*/
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
Type tleft = _left.getType();
if (tleft == null) {
- tleft = _left.typeCheck(stable);
+ tleft = _left.typeCheck(ccontext);
}
if (tleft instanceof NodeType) {
tleft = Type.Node; // multiple instances
1.6.8.1.2.3 +1 -1
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Choose.java
Index: Choose.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Choose.java,v
retrieving revision 1.6.8.1.2.2
retrieving revision 1.6.8.1.2.3
diff -u -r1.6.8.1.2.2 -r1.6.8.1.2.3
--- Choose.java 13 Jan 2003 22:02:51 -0000 1.6.8.1.2.2
+++ Choose.java 15 Jan 2003 14:43:04 -0000 1.6.8.1.2.3
@@ -142,7 +142,7 @@
if (test instanceof FunctionCall) {
FunctionCall call = (FunctionCall)test;
try {
- Type type = call.typeCheck(getParser().getSymbolTable());
+ Type type = call.typeCheck(getCompilerContext());
if (type != Type.Boolean) {
test._falseList.add(il.append(new IFEQ(null)));
}
1.4.8.1.2.3 +2 -2
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Comment.java
Index: Comment.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Comment.java,v
retrieving revision 1.4.8.1.2.2
retrieving revision 1.4.8.1.2.3
diff -u -r1.4.8.1.2.2 -r1.4.8.1.2.3
--- Comment.java 13 Jan 2003 22:02:51 -0000 1.4.8.1.2.2
+++ Comment.java 15 Jan 2003 14:43:04 -0000 1.4.8.1.2.3
@@ -84,8 +84,8 @@
parseContents(ccontext);
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
- typeCheckContents(stable);
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
+ typeCheckContents(ccontext);
return Type.String;
}
1.1.2.2 +6 -0
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Attic/CompilerContext.java
Index: CompilerContext.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Attic/CompilerContext.java,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -r1.1.2.1 -r1.1.2.2
--- CompilerContext.java 13 Jan 2003 22:02:51 -0000 1.1.2.1
+++ CompilerContext.java 15 Jan 2003 14:43:04 -0000 1.1.2.2
@@ -88,5 +88,11 @@
* codemodel package.
*/
public CmMethodDecl getCurrentMethod();
+
+ /**
+ * Returns a fresh namespace prefix (used by xsl:attribute and
+ * xsl:element).
+ */
+ public String generateNamespacePrefix();
}
1.1.2.2 +10 -0
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Attic/CompilerContextImpl.java
Index: CompilerContextImpl.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Attic/CompilerContextImpl.java,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -r1.1.2.1 -r1.1.2.2
--- CompilerContextImpl.java 13 Jan 2003 22:02:51 -0000 1.1.2.1
+++ CompilerContextImpl.java 15 Jan 2003 14:43:04 -0000 1.1.2.2
@@ -169,5 +169,15 @@
public void setCurrentMethod(CmMethodDecl currentMethod) {
_currentMethod = currentMethod;
}
+
+ /**
+ * This is used for xsl:attribute elements that have a "namespace"
+ * attribute that is currently not defined using xmlns:
+ */
+ private int _nsCounter = 0;
+
+ public String generateNamespacePrefix() {
+ return new String("ns" + _nsCounter++);
+ }
}
1.4.8.1.2.2 +3 -3
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ConcatCall.java
Index: ConcatCall.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ConcatCall.java,v
retrieving revision 1.4.8.1.2.1
retrieving revision 1.4.8.1.2.2
diff -u -r1.4.8.1.2.1 -r1.4.8.1.2.2
--- ConcatCall.java 10 Jan 2003 16:50:38 -0000 1.4.8.1.2.1
+++ ConcatCall.java 15 Jan 2003 14:43:04 -0000 1.4.8.1.2.2
@@ -75,10 +75,10 @@
super(fname, arguments);
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
for (int i = 0; i < argumentCount(); i++) {
final Expression exp = argument(i);
- if (!exp.typeCheck(stable).identicalTo(Type.String)) {
+ if (!exp.typeCheck(ccontext).identicalTo(Type.String)) {
setArgument(i, new CastExpr(exp, Type.String));
}
}
1.4.8.1.2.2 +4 -4
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ContainsCall.java
Index: ContainsCall.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ContainsCall.java,v
retrieving revision 1.4.8.1.2.1
retrieving revision 1.4.8.1.2.2
diff -u -r1.4.8.1.2.1 -r1.4.8.1.2.2
--- ContainsCall.java 10 Jan 2003 16:50:38 -0000 1.4.8.1.2.1
+++ ContainsCall.java 15 Jan 2003 14:43:04 -0000 1.4.8.1.2.2
@@ -93,7 +93,7 @@
/**
* Type check the two parameters for this function
*/
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
// Check that the function was passed exactly two arguments
if (argumentCount() != 2) {
@@ -102,13 +102,13 @@
// The first argument must be a String, or cast to a String
_base = argument(0);
- Type baseType = _base.typeCheck(stable);
+ Type baseType = _base.typeCheck(ccontext);
if (baseType != Type.String)
_base = new CastExpr(_base, Type.String);
// The second argument must also be a String, or cast to a String
_token = argument(1);
- Type tokenType = _token.typeCheck(stable);
+ Type tokenType = _token.typeCheck(ccontext);
if (tokenType != Type.String)
_token = new CastExpr(_token, Type.String);
1.7.8.1.2.3 +3 -3
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Copy.java
Index: Copy.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Copy.java,v
retrieving revision 1.7.8.1.2.2
retrieving revision 1.7.8.1.2.3
diff -u -r1.7.8.1.2.2 -r1.7.8.1.2.3
--- Copy.java 13 Jan 2003 22:02:51 -0000 1.7.8.1.2.2
+++ Copy.java 15 Jan 2003 14:43:04 -0000 1.7.8.1.2.3
@@ -87,11 +87,11 @@
parseContents(ccontext);
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
if (_useSets != null) {
- _useSets.typeCheck(stable);
+ _useSets.typeCheck(ccontext);
}
- typeCheckContents(stable);
+ typeCheckContents(ccontext);
return Type.Void;
}
1.10.8.1.2.2 +2 -2
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/CopyOf.java
Index: CopyOf.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/CopyOf.java,v
retrieving revision 1.10.8.1.2.1
retrieving revision 1.10.8.1.2.2
diff -u -r1.10.8.1.2.1 -r1.10.8.1.2.2
--- CopyOf.java 13 Jan 2003 22:02:51 -0000 1.10.8.1.2.1
+++ CopyOf.java 15 Jan 2003 14:43:04 -0000 1.10.8.1.2.2
@@ -86,8 +86,8 @@
}
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
- final Type tselect = _select.typeCheck(stable);
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
+ final Type tselect = _select.typeCheck(ccontext);
if (tselect instanceof NodeType ||
tselect instanceof NodeSetType ||
tselect instanceof ReferenceType ||
1.9.2.1.2.2 +6 -5
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/DecimalFormatting.java
Index: DecimalFormatting.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/DecimalFormatting.java,v
retrieving revision 1.9.2.1.2.1
retrieving revision 1.9.2.1.2.2
diff -u -r1.9.2.1.2.1 -r1.9.2.1.2.2
--- DecimalFormatting.java 13 Jan 2003 22:02:51 -0000 1.9.2.1.2.1
+++ DecimalFormatting.java 15 Jan 2003 14:43:04 -0000 1.9.2.1.2.2
@@ -89,7 +89,7 @@
/**
* No type check needed for the <xsl:decimal-formatting/> element
*/
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
return Type.Void;
}
@@ -105,14 +105,15 @@
_name = parser.getQNameIgnoreDefaultNs(EMPTYSTRING);
}
- // Check if a set of symbols has already been registered under this name
- SymbolTable stable = parser.getSymbolTable();
- if (stable.getDecimalFormatting(_name) != null) {
+ // Check if a set of symbols has already been registered
+ // under this name
+ StaticContextImpl scontext = getStaticContext();
+ if (scontext.getDecimalFormatting(_name) != null) {
reportWarning(this, parser, ErrorMsg.SYMBOLS_REDEF_ERR,
_name.toString());
}
else {
- stable.addDecimalFormatting(_name, this);
+ scontext.addDecimalFormatting(_name, this);
}
}
1.13.2.1.2.2 +4 -4
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/DocumentCall.java
Index: DocumentCall.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/DocumentCall.java,v
retrieving revision 1.13.2.1.2.1
retrieving revision 1.13.2.1.2.2
diff -u -r1.13.2.1.2.1 -r1.13.2.1.2.2
--- DocumentCall.java 10 Jan 2003 16:50:39 -0000 1.13.2.1.2.1
+++ DocumentCall.java 15 Jan 2003 14:43:04 -0000 1.13.2.1.2.2
@@ -90,7 +90,7 @@
* argument can be any type (we must cast it to a string) and contains
the
* URI of the document
*/
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
// At least one argument - two at most
final int ac = argumentCount();
if ((ac < 1) || (ac > 2)) {
@@ -112,7 +112,7 @@
}
}
- _uriType = _uri.typeCheck(stable);
+ _uriType = _uri.typeCheck(ccontext);
if ((_uriType != Type.NodeSet) && (_uriType != Type.String)) {
_uri = new CastExpr(_uri, Type.String);
}
@@ -120,7 +120,7 @@
// Parse the second argument - the document URI base
if (ac == 2) {
_base = argument(1);
- final Type baseType = _base.typeCheck(stable);
+ final Type baseType = _base.typeCheck(ccontext);
if (baseType.identicalTo(Type.Node)) {
_base = new CastExpr(_base, Type.NodeSet);
1.7.2.1.2.3 +2 -2
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ElementAvailableCall.java
Index: ElementAvailableCall.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ElementAvailableCall.java,v
retrieving revision 1.7.2.1.2.2
retrieving revision 1.7.2.1.2.3
diff -u -r1.7.2.1.2.2 -r1.7.2.1.2.3
--- ElementAvailableCall.java 10 Jan 2003 16:50:39 -0000 1.7.2.1.2.2
+++ ElementAvailableCall.java 15 Jan 2003 14:43:04 -0000 1.7.2.1.2.3
@@ -78,7 +78,7 @@
/**
* Force the argument to this function to be a literal string.
*/
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
if (argument() instanceof LiteralExpr) {
return _type = Type.Boolean;
}
1.9.2.1.2.3 +3 -3
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/EqualityExpr.java
Index: EqualityExpr.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/EqualityExpr.java,v
retrieving revision 1.9.2.1.2.2
retrieving revision 1.9.2.1.2.3
diff -u -r1.9.2.1.2.2 -r1.9.2.1.2.3
--- EqualityExpr.java 13 Jan 2003 22:02:51 -0000 1.9.2.1.2.2
+++ EqualityExpr.java 15 Jan 2003 14:43:04 -0000 1.9.2.1.2.3
@@ -123,9 +123,9 @@
/**
* Typing rules: see XSLT Reference by M. Kay page 345.
*/
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
- final Type tleft = _left.typeCheck(stable);
- final Type tright = _right.typeCheck(stable);
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
+ final Type tleft = _left.typeCheck(ccontext);
+ final Type tright = _right.typeCheck(ccontext);
if (tleft.isSimple() && tright.isSimple()) {
if (tleft != tright) {
1.15.2.1.2.3 +20 -18
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Expression.java
Index: Expression.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Expression.java,v
retrieving revision 1.15.2.1.2.2
retrieving revision 1.15.2.1.2.3
diff -u -r1.15.2.1.2.2 -r1.15.2.1.2.3
--- Expression.java 10 Jan 2003 16:50:39 -0000 1.15.2.1.2.2
+++ Expression.java 15 Jan 2003 14:43:04 -0000 1.15.2.1.2.3
@@ -75,7 +75,7 @@
abstract class Expression extends SyntaxTreeNode {
/**
- * The type of this expression. It is set after calling
+ * The type of this expression. It is set after calling
* <code>typeCheck()</code>.
*/
protected Type _type;
@@ -109,9 +109,9 @@
public boolean hasLastCall() {
return false;
}
-
+
/**
- * Returns an object representing the compile-time evaluation
+ * Returns an object representing the compile-time evaluation
* of an expression. We are only using this for function-available
* and element-available at this time.
*/
@@ -122,8 +122,8 @@
/**
* Type check all the children of this node.
*/
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
- return typeCheckContents(stable);
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
+ return typeCheckContents(ccontext);
}
/**
@@ -134,7 +134,7 @@
getClass(), this);
getParser().reportError(FATAL, msg);
}
-
+
/**
* Translate this node into a fresh instruction list.
* The original instruction list is saved and restored.
@@ -163,7 +163,7 @@
* Expects an object on the stack and if this object can be proven
* to be a node iterator then the iterator is reset or started
* depending on the type of this expression.
- * If this expression is a var reference then the iterator
+ * If this expression is a var reference then the iterator
* is reset, otherwise it is started.
*/
public void startResetIterator(ClassGenerator classGen,
@@ -187,7 +187,7 @@
}
/**
- * Synthesize a boolean expression, i.e., either push a 0 or 1 onto the
+ * Synthesize a boolean expression, i.e., either push a 0 or 1 onto the
* operand stack for the next statement to succeed. Returns the handle
* of the instruction to be backpatched.
*/
@@ -223,16 +223,18 @@
}
/**
- * Search for a primop in the symbol table that matches the method type
+ * Search for a primop in the symbol table that matches the method type
* <code>ctype</code>. Two methods match if they have the same arity.
* If a primop is overloaded then the "closest match" is returned. The
- * first entry in the vector of primops that has the right arity is
+ * first entry in the vector of primops that has the right arity is
* considered to be the default one.
*/
- public MethodType lookupPrimop(SymbolTable stable, String op,
- MethodType ctype) {
+ public MethodType lookupPrimop(StaticContext scontext, String op,
+ MethodType ctype)
+ {
MethodType result = null;
- final ArrayList primop = stable.lookupPrimop(op);
+ final ArrayList primop = scontext.getPrimop(op);
+
if (primop != null) {
final int n = primop.size();
int minDistance = Integer.MAX_VALUE;
@@ -242,7 +244,7 @@
if (ptype.argsCount() != ctype.argsCount()) {
continue;
}
-
+
// The first method with the right arity is the default
if (result == null) {
result = ptype; // default method
@@ -254,8 +256,8 @@
minDistance = distance;
result = ptype;
}
- }
- }
+ }
+ }
return result;
- }
+ }
}
1.4.8.1.2.3 +2 -2
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Fallback.java
Index: Fallback.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Fallback.java,v
retrieving revision 1.4.8.1.2.2
retrieving revision 1.4.8.1.2.3
diff -u -r1.4.8.1.2.2 -r1.4.8.1.2.3
--- Fallback.java 13 Jan 2003 22:02:51 -0000 1.4.8.1.2.2
+++ Fallback.java 15 Jan 2003 14:43:04 -0000 1.4.8.1.2.3
@@ -81,9 +81,9 @@
/**
* This element never produces any data on the stack
*/
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
if (_active) {
- return(typeCheckContents(stable));
+ return(typeCheckContents(ccontext));
}
else {
return Type.Void;
1.6.8.1.2.3 +3 -3
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/FilterExpr.java
Index: FilterExpr.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/FilterExpr.java,v
retrieving revision 1.6.8.1.2.2
retrieving revision 1.6.8.1.2.3
diff -u -r1.6.8.1.2.2 -r1.6.8.1.2.3
--- FilterExpr.java 13 Jan 2003 22:02:51 -0000 1.6.8.1.2.2
+++ FilterExpr.java 15 Jan 2003 14:43:04 -0000 1.6.8.1.2.3
@@ -107,8 +107,8 @@
* cast to node-set only if it is of reference type. This type coercion
* is needed for expressions like $x where $x is a parameter reference.
*/
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
- Type ptype = _primary.typeCheck(stable);
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
+ Type ptype = _primary.typeCheck(ccontext);
if (ptype instanceof NodeSetType == false) {
if (ptype instanceof ReferenceType) {
@@ -122,7 +122,7 @@
int n = _predicates.size();
for (int i = 0; i < n; i++) {
Expression pred = (Expression)_predicates.get(i);
- pred.typeCheck(stable);
+ pred.typeCheck(ccontext);
}
return _type = Type.NodeSet;
}
1.10.2.1.2.2 +3 -3
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/FilterParentPath.java
Index: FilterParentPath.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/FilterParentPath.java,v
retrieving revision 1.10.2.1.2.1
retrieving revision 1.10.2.1.2.2
diff -u -r1.10.2.1.2.1 -r1.10.2.1.2.2
--- FilterParentPath.java 13 Jan 2003 22:02:51 -0000 1.10.2.1.2.1
+++ FilterParentPath.java 15 Jan 2003 14:43:04 -0000 1.10.2.1.2.2
@@ -93,8 +93,8 @@
* cast to node-set only if it is of reference type. This type coercion
is
* needed for expressions like $x/LINE where $x is a parameter reference.
*/
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
- final Type ftype = _filterExpr.typeCheck(stable);
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
+ final Type ftype = _filterExpr.typeCheck(ccontext);
if (ftype instanceof NodeSetType == false) {
if (ftype instanceof ReferenceType) {
_filterExpr = new CastExpr(_filterExpr, Type.NodeSet);
@@ -113,7 +113,7 @@
}
// Wrap single node path in a node set
- final Type ptype = _path.typeCheck(stable);
+ final Type ptype = _path.typeCheck(ccontext);
if (!(ptype instanceof NodeSetType)) {
_path = new CastExpr(_path, Type.NodeSet);
}
1.3.8.1.2.2 +2 -2
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/FilteredAbsoluteLocationPath.java
Index: FilteredAbsoluteLocationPath.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/FilteredAbsoluteLocationPath.java,v
retrieving revision 1.3.8.1.2.1
retrieving revision 1.3.8.1.2.2
diff -u -r1.3.8.1.2.1 -r1.3.8.1.2.2
--- FilteredAbsoluteLocationPath.java 13 Jan 2003 22:02:51 -0000
1.3.8.1.2.1
+++ FilteredAbsoluteLocationPath.java 15 Jan 2003 14:43:04 -0000
1.3.8.1.2.2
@@ -89,9 +89,9 @@
(_path != null ? _path.toString() : "null") + ')';
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
if (_path != null) {
- final Type ptype = _path.typeCheck(stable);
+ final Type ptype = _path.typeCheck(ccontext);
if (ptype instanceof NodeType) { // promote to node-set
_path = new CastExpr(_path, Type.NodeSet);
}
1.12.8.1.2.4 +4 -4
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ForEach.java
Index: ForEach.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ForEach.java,v
retrieving revision 1.12.8.1.2.3
retrieving revision 1.12.8.1.2.4
diff -u -r1.12.8.1.2.3 -r1.12.8.1.2.4
--- ForEach.java 13 Jan 2003 22:02:51 -0000 1.12.8.1.2.3
+++ ForEach.java 15 Jan 2003 14:43:04 -0000 1.12.8.1.2.4
@@ -99,16 +99,16 @@
}
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
- _type = _select.typeCheck(stable);
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
+ _type = _select.typeCheck(ccontext);
if (_type instanceof ReferenceType || _type instanceof NodeType) {
_select = new CastExpr(_select, Type.NodeSet);
- typeCheckContents(stable);
+ typeCheckContents(ccontext);
return Type.Void;
}
if (_type instanceof NodeSetType||_type instanceof ResultTreeType) {
- typeCheckContents(stable);
+ typeCheckContents(ccontext);
return Type.Void;
}
throw new TypeCheckError(this);
1.8.2.1.2.2 +5 -5
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/FormatNumberCall.java
Index: FormatNumberCall.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/FormatNumberCall.java,v
retrieving revision 1.8.2.1.2.1
retrieving revision 1.8.2.1.2.2
diff -u -r1.8.2.1.2.1 -r1.8.2.1.2.2
--- FormatNumberCall.java 10 Jan 2003 16:50:39 -0000 1.8.2.1.2.1
+++ FormatNumberCall.java 15 Jan 2003 14:43:04 -0000 1.8.2.1.2.2
@@ -83,21 +83,21 @@
_name = argumentCount() == 3 ? argument(2) : null;
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
// Inform stylesheet to instantiate a DecimalFormat object
getStylesheet().numberFormattingUsed();
- final Type tvalue = _value.typeCheck(stable);
+ final Type tvalue = _value.typeCheck(ccontext);
if (tvalue instanceof RealType == false) {
_value = new CastExpr(_value, Type.Real);
}
- final Type tformat = _format.typeCheck(stable);
+ final Type tformat = _format.typeCheck(ccontext);
if (tformat instanceof StringType == false) {
_format = new CastExpr(_format, Type.String);
}
if (argumentCount() == 3) {
- final Type tname = _name.typeCheck(stable);
+ final Type tname = _name.typeCheck(ccontext);
if (_name instanceof LiteralExpr) {
final LiteralExpr literal = (LiteralExpr) _name;
1.1.2.3 +2 -2
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ForwardPositionExpr.java
Index: ForwardPositionExpr.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ForwardPositionExpr.java,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -u -r1.1.2.2 -r1.1.2.3
--- ForwardPositionExpr.java 13 Jan 2003 22:02:51 -0000 1.1.2.2
+++ ForwardPositionExpr.java 15 Jan 2003 14:43:04 -0000 1.1.2.3
@@ -77,8 +77,8 @@
return "forward-position-expr(" + _expr + ")";
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
- return (_type = _expr.typeCheck(stable));
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
+ return (_type = _expr.typeCheck(ccontext));
}
public void translate(ClassGenerator classGen, MethodGenerator
methodGen) {
1.11.2.1.2.3 +2 -2
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/FunctionAvailableCall.java
Index: FunctionAvailableCall.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/FunctionAvailableCall.java,v
retrieving revision 1.11.2.1.2.2
retrieving revision 1.11.2.1.2.3
diff -u -r1.11.2.1.2.2 -r1.11.2.1.2.3
--- FunctionAvailableCall.java 10 Jan 2003 16:50:39 -0000
1.11.2.1.2.2
+++ FunctionAvailableCall.java 15 Jan 2003 14:43:04 -0000
1.11.2.1.2.3
@@ -104,7 +104,7 @@
* Argument of function-available call must be literal, typecheck
* returns the type of function-available to be boolean.
*/
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
if (_type != null) {
return _type;
}
1.22.2.1.2.4 +24 -18
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/FunctionCall.java
Index: FunctionCall.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/FunctionCall.java,v
retrieving revision 1.22.2.1.2.3
retrieving revision 1.22.2.1.2.4
diff -u -r1.22.2.1.2.3 -r1.22.2.1.2.4
--- FunctionCall.java 13 Jan 2003 22:02:51 -0000 1.22.2.1.2.3
+++ FunctionCall.java 15 Jan 2003 14:43:04 -0000 1.22.2.1.2.4
@@ -338,7 +338,7 @@
* Type check a function call. Since different type conversions apply,
* type checking is different for standard and external (Java) functions.
*/
- public Type typeCheck(SymbolTable stable)
+ public Type typeCheck(CompilerContext ccontext)
throws TypeCheckError
{
if (_type != null) return _type;
@@ -348,10 +348,10 @@
if (isExtension()) {
_fname = new QName(null, null, local);
- return typeCheckStandard(stable);
+ return typeCheckStandard(ccontext);
}
else if (isStandard()) {
- return typeCheckStandard(stable);
+ return typeCheckStandard(ccontext);
}
// Handle extension functions (they all have a namespace)
else {
@@ -393,13 +393,13 @@
String extFunction =
(String)_extensionFunctionTable.get(namespace + ":" + local);
if (extFunction != null) {
_fname = new QName(null, null, extFunction);
- return typeCheckStandard(stable);
+ return typeCheckStandard(ccontext);
}
else
_fname = new QName(namespace, null, local);
}
- return typeCheckExternal(stable);
+ return typeCheckExternal(ccontext);
}
catch (TypeCheckError e) {
ErrorMsg errorMsg = e.getErrorMsg();
@@ -418,14 +418,16 @@
* If as a result of the insertion of a CastExpr a type check error is
* thrown, then catch it and re-throw it with a new "this".
*/
- public Type typeCheckStandard(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheckStandard(CompilerContext ccontext)
+ throws TypeCheckError
+ {
_fname.clearNamespace(); // HACK!!!
final int n = _arguments.size();
- final ArrayList argsType = typeCheckArgs(stable);
+ final ArrayList argsType = typeCheckArgs(ccontext);
final MethodType args = new MethodType(Type.Void, argsType);
final MethodType ptype =
- lookupPrimop(stable, _fname.getLocalPart(), args);
+ lookupPrimop(getStaticContext(), _fname.getLocalPart(), args);
if (ptype != null) {
for (int i = 0; i < n; i++) {
@@ -446,9 +448,9 @@
throw new TypeCheckError(this);
}
-
-
- public Type typeCheckConstructor(SymbolTable stable) throws
TypeCheckError{
+ public Type typeCheckConstructor(CompilerContext ccontext)
+ throws TypeCheckError
+ {
final ArrayList constructors = findConstructors();
if (constructors == null) {
// Constructor not found in this class
@@ -459,7 +461,7 @@
final int nConstructors = constructors.size();
final int nArgs = _arguments.size();
- final ArrayList argsType = typeCheckArgs(stable);
+ final ArrayList argsType = typeCheckArgs(ccontext);
// Try all constructors
int bestConstrDistance = Integer.MAX_VALUE;
@@ -514,13 +516,15 @@
* Every method of name <code>_fname</code> is inspected
* as a possible candidate.
*/
- public Type typeCheckExternal(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheckExternal(CompilerContext ccontext)
+ throws TypeCheckError
+ {
int nArgs = _arguments.size();
final String name = _fname.getLocalPart();
// check if function is a contructor 'new'
if (_fname.getLocalPart().equals("new")) {
- return typeCheckConstructor(stable);
+ return typeCheckConstructor(ccontext);
}
// check if we are calling an instance method
else {
@@ -535,7 +539,7 @@
hasThisArgument = true;
Expression firstArg = (Expression)_arguments.get(0);
- Type firstArgType = (Type)firstArg.typeCheck(stable);
+ Type firstArgType = (Type)firstArg.typeCheck(ccontext);
if (_namespace_format == NAMESPACE_FORMAT_CLASS
&& firstArgType instanceof ObjectType
@@ -579,7 +583,7 @@
Class extType = null;
final int nMethods = methods.size();
- final ArrayList argsType = typeCheckArgs(stable);
+ final ArrayList argsType = typeCheckArgs(ccontext);
// Try all methods to identify the best fit
int bestMethodDistance = Integer.MAX_VALUE;
@@ -662,12 +666,14 @@
/**
* Type check the actual arguments of this function call.
*/
- public ArrayList typeCheckArgs(SymbolTable stable) throws TypeCheckError
{
+ public ArrayList typeCheckArgs(CompilerContext ccontext)
+ throws TypeCheckError
+ {
final ArrayList result = new ArrayList();
final Iterator e = _arguments.iterator();
while (e.hasNext()) {
final Expression exp = (Expression)e.next();
- result.add(exp.typeCheck(stable));
+ result.add(exp.typeCheck(ccontext));
}
return result;
}
1.6.8.1.2.1 +2 -2
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/IdKeyPattern.java
Index: IdKeyPattern.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/IdKeyPattern.java,v
retrieving revision 1.6.8.1
retrieving revision 1.6.8.1.2.1
diff -u -r1.6.8.1 -r1.6.8.1.2.1
--- IdKeyPattern.java 14 Aug 2002 19:21:32 -0000 1.6.8.1
+++ IdKeyPattern.java 15 Jan 2003 14:43:04 -0000 1.6.8.1.2.1
@@ -82,7 +82,7 @@
return(_index);
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
return Type.NodeSet;
}
1.10.2.1.2.3 +3 -3
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/If.java
Index: If.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/If.java,v
retrieving revision 1.10.2.1.2.2
retrieving revision 1.10.2.1.2.3
diff -u -r1.10.2.1.2.2 -r1.10.2.1.2.3
--- If.java 13 Jan 2003 22:02:52 -0000 1.10.2.1.2.2
+++ If.java 15 Jan 2003 14:43:04 -0000 1.10.2.1.2.3
@@ -106,14 +106,14 @@
* Type-check the "test" expression and contents of this element.
* The contents will be ignored if we know the test will always fail.
*/
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
// Type-check the "test" expression
- if (_test.typeCheck(stable) instanceof BooleanType == false) {
+ if (_test.typeCheck(ccontext) instanceof BooleanType == false) {
_test = new CastExpr(_test, Type.Boolean);
}
// Type check the element contents
if (!_ignore) {
- typeCheckContents(stable);
+ typeCheckContents(ccontext);
}
return Type.Void;
}
1.16.2.1.2.4 +1 -1
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Import.java
Index: Import.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Import.java,v
retrieving revision 1.16.2.1.2.3
retrieving revision 1.16.2.1.2.4
diff -u -r1.16.2.1.2.3 -r1.16.2.1.2.4
--- Import.java 13 Jan 2003 22:02:52 -0000 1.16.2.1.2.3
+++ Import.java 15 Jan 2003 14:43:04 -0000 1.16.2.1.2.4
@@ -168,7 +168,7 @@
}
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
return Type.Void;
}
1.19.2.1.2.4 +1 -1
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Include.java
Index: Include.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Include.java,v
retrieving revision 1.19.2.1.2.3
retrieving revision 1.19.2.1.2.4
diff -u -r1.19.2.1.2.3 -r1.19.2.1.2.4
--- Include.java 13 Jan 2003 22:02:52 -0000 1.19.2.1.2.3
+++ Include.java 15 Jan 2003 14:43:04 -0000 1.19.2.1.2.4
@@ -203,7 +203,7 @@
}
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
return Type.Void;
}
1.2.12.1.2.1 +3 -3
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Instruction.java
Index: Instruction.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Instruction.java,v
retrieving revision 1.2.12.1
retrieving revision 1.2.12.1.2.1
diff -u -r1.2.12.1 -r1.2.12.1.2.1
--- Instruction.java 14 Aug 2002 19:21:32 -0000 1.2.12.1
+++ Instruction.java 15 Jan 2003 14:43:04 -0000 1.2.12.1.2.1
@@ -69,8 +69,8 @@
/**
* Type check all the children of this node.
*/
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
- return typeCheckContents(stable);
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
+ return typeCheckContents(ccontext);
}
/**
1.2.8.1.2.1 +2 -2
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/IntExpr.java
Index: IntExpr.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/IntExpr.java,v
retrieving revision 1.2.8.1
retrieving revision 1.2.8.1.2.1
diff -u -r1.2.8.1 -r1.2.8.1.2.1
--- IntExpr.java 14 Aug 2002 19:21:32 -0000 1.2.8.1
+++ IntExpr.java 15 Jan 2003 14:43:04 -0000 1.2.8.1.2.1
@@ -74,7 +74,7 @@
_value = value;
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
return _type = Type.Int;
}
1.11.2.1.2.3 +3 -3
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Key.java
Index: Key.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Key.java,v
retrieving revision 1.11.2.1.2.2
retrieving revision 1.11.2.1.2.3
diff -u -r1.11.2.1.2.2 -r1.11.2.1.2.3
--- Key.java 13 Jan 2003 22:02:52 -0000 1.11.2.1.2.2
+++ Key.java 15 Jan 2003 14:43:04 -0000 1.11.2.1.2.3
@@ -131,12 +131,12 @@
return _name.toString();
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
// Type check match pattern
- _match.typeCheck(stable);
+ _match.typeCheck(ccontext);
// Cast node values to string values (except for nodesets)
- _useType = _use.typeCheck(stable);
+ _useType = _use.typeCheck(ccontext);
if (_useType instanceof StringType == false &&
_useType instanceof NodeSetType == false)
{
1.8.2.1.2.3 +5 -5
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/KeyCall.java
Index: KeyCall.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/KeyCall.java,v
retrieving revision 1.8.2.1.2.2
retrieving revision 1.8.2.1.2.3
diff -u -r1.8.2.1.2.2 -r1.8.2.1.2.3
--- KeyCall.java 10 Jan 2003 16:50:40 -0000 1.8.2.1.2.2
+++ KeyCall.java 15 Jan 2003 14:43:04 -0000 1.8.2.1.2.3
@@ -127,13 +127,13 @@
* @param stable The parser's symbol table
* @throws TypeCheckError When the parameters have illegal type
*/
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
- final Type returnType = super.typeCheck(stable);
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
+ final Type returnType = super.typeCheck(ccontext);
// Run type check on the key name (first argument) - must be a string,
// and if it is not it must be converted to one using string() rules.
if (_name != null) {
- final Type nameType = _name.typeCheck(stable);
+ final Type nameType = _name.typeCheck(ccontext);
if (_name instanceof LiteralExpr) {
final LiteralExpr literal = (LiteralExpr) _name;
@@ -152,7 +152,7 @@
// this process (convert to string, then do lookup) should be applied
// to every node in the set, and the result from all lookups should
// be added to the resulting node-set.
- _valueType = _value.typeCheck(stable);
+ _valueType = _value.typeCheck(ccontext);
if (_valueType != Type.NodeSet && _valueType != Type.ResultTree
&& _valueType != Type.String)
1.2.8.1.2.2 +3 -3
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/LangCall.java
Index: LangCall.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/LangCall.java,v
retrieving revision 1.2.8.1.2.1
retrieving revision 1.2.8.1.2.2
diff -u -r1.2.8.1.2.1 -r1.2.8.1.2.2
--- LangCall.java 10 Jan 2003 16:50:40 -0000 1.2.8.1.2.1
+++ LangCall.java 15 Jan 2003 14:43:04 -0000 1.2.8.1.2.2
@@ -84,8 +84,8 @@
/**
*
*/
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
- _langType = _lang.typeCheck(stable);
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
+ _langType = _lang.typeCheck(ccontext);
if (!(_langType instanceof StringType)) {
_lang = new CastExpr(_lang, Type.String);
}
1.4.8.1.2.2 +3 -3
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/LiteralAttribute.java
Index: LiteralAttribute.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/LiteralAttribute.java,v
retrieving revision 1.4.8.1.2.1
retrieving revision 1.4.8.1.2.2
diff -u -r1.4.8.1.2.1 -r1.4.8.1.2.2
--- LiteralAttribute.java 13 Jan 2003 22:02:52 -0000 1.4.8.1.2.1
+++ LiteralAttribute.java 15 Jan 2003 14:43:04 -0000 1.4.8.1.2.2
@@ -84,9 +84,9 @@
_value = AttributeValue.create(this, value, parser);
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
- _value.typeCheck(stable);
- typeCheckContents(stable);
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
+ _value.typeCheck(ccontext);
+ typeCheckContents(ccontext);
return Type.Void;
}
1.18.2.1.2.3 +26 -25
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/LiteralElement.java
Index: LiteralElement.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/LiteralElement.java,v
retrieving revision 1.18.2.1.2.2
retrieving revision 1.18.2.1.2.3
diff -u -r1.18.2.1.2.2 -r1.18.2.1.2.3
--- LiteralElement.java 13 Jan 2003 22:02:52 -0000 1.18.2.1.2.2
+++ LiteralElement.java 15 Jan 2003 14:43:04 -0000 1.18.2.1.2.3
@@ -107,14 +107,14 @@
* this literal element and its attributes. The output must contain a
* definition for each namespace, so we stuff them in a hashtable.
*/
- public void registerNamespace(String prefix, String uri,
- SymbolTable stable, boolean declared) {
+ public void registerNamespace(String prefix, String uri, boolean
declared) {
+ StaticContextImpl scontext = getStaticContext();
// Check if the parent has a declaration for this namespace
if (_literalElemParent != null) {
final String parentUri =
_literalElemParent.accessedNamespace(prefix);
if (parentUri == null) {
- _literalElemParent.registerNamespace(prefix, uri, stable,
declared);
+ _literalElemParent.registerNamespace(prefix, uri, declared);
return;
}
if (parentUri.equals(uri)) return;
@@ -132,7 +132,7 @@
if (old.equals(uri))
return;
else
- prefix = stable.generateNamespacePrefix();
+ prefix = getCompilerContext().generateNamespacePrefix();
}
}
}
@@ -147,21 +147,24 @@
* the attributes of xsl:stylesheet. Also registers a QName to assure
* that the output element contains the necessary namespace declarations.
*/
- private String translateQName(QName qname, SymbolTable stable) {
+ private String translateQName(QName qname) {
// Break up the QName and get prefix:localname strings
String localname = qname.getLocalPart();
String prefix = qname.getPrefix();
// Treat default namespace as "" and not null
- if (prefix == null)
+ if (prefix == null) {
prefix = Constants.EMPTYSTRING;
- else if (prefix.equals(XMLNS_STRING))
- return(XMLNS_STRING);
+ }
+ else if (prefix.equals(XMLNS_STRING)) {
+ return XMLNS_STRING;
+ }
// Check if we must translate the prefix
- final String alternative = stable.lookupPrefixAlias(prefix);
+ StaticContextImpl scontext = getStaticContext();
+ final String alternative = scontext.getPrefixAlias(prefix);
if (alternative != null) {
- stable.excludeNamespaces(prefix);
+ scontext.setExcludePrefixes(prefix);
prefix = alternative;
}
@@ -170,7 +173,7 @@
if (uri == null) return(localname);
// Register the namespace as accessed
- registerNamespace(prefix, uri, stable, false);
+ registerNamespace(prefix, uri, false);
// Construct the new name for the element (may be unchanged)
if (prefix != Constants.EMPTYSTRING)
@@ -203,17 +206,17 @@
* Type-check the contents of this element. The element itself does not
* need any type checking as it leaves nothign on the JVM's stack.
*/
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
// Type-check all attributes
if (_attributeElements != null) {
final int count = _attributeElements.size();
for (int i = 0; i < count; i++) {
SyntaxTreeNode node =
(SyntaxTreeNode)_attributeElements.get(i);
- node.typeCheck(stable);
+ node.typeCheck(ccontext);
}
}
- typeCheckContents(stable);
+ typeCheckContents(ccontext);
return Type.Void;
}
@@ -247,9 +250,7 @@
*/
public void parse(CompilerContext ccontext) {
final Parser parser = ccontext.getParser();
-
- final SymbolTable stable = parser.getSymbolTable();
- stable.setCurrentNode(this);
+ final StaticContextImpl scontext = getStaticContext();
// Find the closest literal element ancestor (if there is one)
SyntaxTreeNode _literalElemParent = getParent();
@@ -261,7 +262,7 @@
_literalElemParent = null;
}
- _name = translateQName(_qname, stable);
+ _name = translateQName(_qname);
// Process all attributes and register all namespaces they use
final int count = _attributes.getLength();
@@ -278,11 +279,11 @@
}
// Handle xsl:extension-element-prefixes
else if (qname == parser.getExtensionElementPrefixes()) {
- stable.excludeNamespaces(val);
+ scontext.setExcludePrefixes(val);
}
// Handle xsl:exclude-result-prefixes
else if (qname == parser.getExcludeResultPrefixes()) {
- stable.excludeNamespaces(val);
+ scontext.setExcludePrefixes(val);
}
else {
// Ignore special attributes (e.g. xmlns:prefix and xmlns)
@@ -295,7 +296,7 @@
}
// Handle all other literal attributes
- final String name = translateQName(qname, stable);
+ final String name = translateQName(qname);
LiteralAttribute attr = new LiteralAttribute(name, val, parser);
addAttribute(attr);
attr.setParent(this);
@@ -310,8 +311,8 @@
final String prefix = (String)include.next();
if (!prefix.equals("xml")) {
final String uri = lookupNamespace(prefix);
- if (uri != null && !stable.isExcludedNamespace(uri)) {
- registerNamespace(prefix, uri, stable, true);
+ if (uri != null && !scontext.getExcludeUri(uri)) {
+ registerNamespace(prefix, uri, true);
}
}
}
@@ -325,11 +326,11 @@
// Handle xsl:extension-element-prefixes
if (qname == parser.getExtensionElementPrefixes()) {
- stable.unExcludeNamespaces(val);
+ scontext.setUnexcludePrefixes(val);
}
// Handle xsl:exclude-result-prefixes
else if (qname == parser.getExcludeResultPrefixes()) {
- stable.unExcludeNamespaces(val);
+ scontext.setUnexcludePrefixes(val);
}
}
}
1.5.2.1.2.1 +2 -2
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/LiteralExpr.java
Index: LiteralExpr.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/LiteralExpr.java,v
retrieving revision 1.5.2.1
retrieving revision 1.5.2.1.2.1
diff -u -r1.5.2.1 -r1.5.2.1.2.1
--- LiteralExpr.java 14 Aug 2002 19:21:33 -0000 1.5.2.1
+++ LiteralExpr.java 15 Jan 2003 14:43:04 -0000 1.5.2.1.2.1
@@ -91,7 +91,7 @@
_namespace = namespace.equals(Constants.EMPTYSTRING) ? null : namespace;
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
return _type = Type.String;
}
1.2.16.1.2.2 +2 -2
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/LocationPathPattern.java
Index: LocationPathPattern.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/LocationPathPattern.java,v
retrieving revision 1.2.16.1.2.1
retrieving revision 1.2.16.1.2.2
diff -u -r1.2.16.1.2.1 -r1.2.16.1.2.2
--- LocationPathPattern.java 2 Dec 2002 15:51:16 -0000 1.2.16.1.2.1
+++ LocationPathPattern.java 15 Jan 2003 14:43:04 -0000 1.2.16.1.2.2
@@ -74,7 +74,7 @@
private double _priority = Double.NaN;
private int _position = 0;
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
return Type.Void; // TODO
}
1.10.2.1.2.4 +5 -4
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/LogicalExpr.java
Index: LogicalExpr.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/LogicalExpr.java,v
retrieving revision 1.10.2.1.2.3
retrieving revision 1.10.2.1.2.4
diff -u -r1.10.2.1.2.3 -r1.10.2.1.2.4
--- LogicalExpr.java 13 Jan 2003 22:02:52 -0000 1.10.2.1.2.3
+++ LogicalExpr.java 15 Jan 2003 14:43:04 -0000 1.10.2.1.2.4
@@ -141,14 +141,15 @@
/**
* Type-check this expression, and possibly child expressions.
*/
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
// Get the left and right operand types
- Type tleft = _left.typeCheck(stable);
- Type tright = _right.typeCheck(stable);
+ Type tleft = _left.typeCheck(ccontext);
+ Type tright = _right.typeCheck(ccontext);
// Check if the operator supports the two operand types
MethodType wantType = new MethodType(Type.Void, tleft, tright);
- MethodType haveType = lookupPrimop(stable, Ops[_op], wantType);
+ MethodType haveType =
+ lookupPrimop(getStaticContext(), Ops[_op], wantType);
// Yes, the operation is supported
if (haveType != null) {
1.6.8.1.2.2 +2 -2
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Message.java
Index: Message.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Message.java,v
retrieving revision 1.6.8.1.2.1
retrieving revision 1.6.8.1.2.2
diff -u -r1.6.8.1.2.1 -r1.6.8.1.2.2
--- Message.java 13 Jan 2003 22:02:52 -0000 1.6.8.1.2.1
+++ Message.java 15 Jan 2003 14:43:04 -0000 1.6.8.1.2.2
@@ -82,8 +82,8 @@
parseContents(ccontext);
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
- typeCheckContents(stable);
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
+ typeCheckContents(ccontext);
return Type.Void;
}
1.7.2.1.2.2 +3 -3
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/NameBase.java
Index: NameBase.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/NameBase.java,v
retrieving revision 1.7.2.1.2.1
retrieving revision 1.7.2.1.2.2
diff -u -r1.7.2.1.2.1 -r1.7.2.1.2.2
--- NameBase.java 10 Jan 2003 16:50:40 -0000 1.7.2.1.2.1
+++ NameBase.java 15 Jan 2003 14:43:04 -0000 1.7.2.1.2.2
@@ -94,7 +94,7 @@
* Check that we either have no parameters or one parameter that is
* either a node or a node-set.
*/
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
// Check the argument type (if any)
switch(argumentCount()) {
@@ -102,7 +102,7 @@
_paramType = Type.Node;
break;
case 1:
- _paramType = _param.typeCheck(stable);
+ _paramType = _param.typeCheck(ccontext);
break;
default:
throw new TypeCheckError(this);
1.4.8.1.2.3 +2 -2
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/NamespaceAlias.java
Index: NamespaceAlias.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/NamespaceAlias.java,v
retrieving revision 1.4.8.1.2.2
retrieving revision 1.4.8.1.2.3
diff -u -r1.4.8.1.2.2 -r1.4.8.1.2.3
--- NamespaceAlias.java 13 Jan 2003 22:02:52 -0000 1.4.8.1.2.2
+++ NamespaceAlias.java 15 Jan 2003 14:43:04 -0000 1.4.8.1.2.3
@@ -84,10 +84,10 @@
final Parser parser = ccontext.getParser();
sPrefix = getAttribute("stylesheet-prefix");
rPrefix = getAttribute("result-prefix");
- parser.getSymbolTable().addPrefixAlias(sPrefix,rPrefix);
+ getStaticContext().addPrefixAlias(sPrefix, rPrefix);
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
return Type.Void;
}
1.9.2.1.2.4 +9 -9
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Number.java
Index: Number.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Number.java,v
retrieving revision 1.9.2.1.2.3
retrieving revision 1.9.2.1.2.4
diff -u -r1.9.2.1.2.3 -r1.9.2.1.2.4
--- Number.java 13 Jan 2003 22:02:52 -0000 1.9.2.1.2.3
+++ Number.java 15 Jan 2003 14:43:04 -0000 1.9.2.1.2.4
@@ -198,33 +198,33 @@
}
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
if (_value != null) {
- Type tvalue = _value.typeCheck(stable);
+ Type tvalue = _value.typeCheck(ccontext);
if (tvalue instanceof RealType == false) {
_value = new CastExpr(_value, Type.Real);
}
}
if (_count != null) {
- _count.typeCheck(stable);
+ _count.typeCheck(ccontext);
}
if (_from != null) {
- _from.typeCheck(stable);
+ _from.typeCheck(ccontext);
}
if (_format != null) {
- _format.typeCheck(stable);
+ _format.typeCheck(ccontext);
}
if (_lang != null) {
- _lang.typeCheck(stable);
+ _lang.typeCheck(ccontext);
}
if (_letterValue != null) {
- _letterValue.typeCheck(stable);
+ _letterValue.typeCheck(ccontext);
}
if (_groupingSeparator != null) {
- _groupingSeparator.typeCheck(stable);
+ _groupingSeparator.typeCheck(ccontext);
}
if (_groupingSize != null) {
- _groupingSize.typeCheck(stable);
+ _groupingSize.typeCheck(ccontext);
}
return Type.Void;
}
1.2.8.1.2.2 +3 -3
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/NumberCall.java
Index: NumberCall.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/NumberCall.java,v
retrieving revision 1.2.8.1.2.1
retrieving revision 1.2.8.1.2.2
diff -u -r1.2.8.1.2.1 -r1.2.8.1.2.2
--- NumberCall.java 10 Jan 2003 16:50:41 -0000 1.2.8.1.2.1
+++ NumberCall.java 15 Jan 2003 14:43:04 -0000 1.2.8.1.2.2
@@ -74,9 +74,9 @@
super(fname, arguments);
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
if (argumentCount() > 0) {
- argument().typeCheck(stable);
+ argument().typeCheck(ccontext);
}
return _type = Type.Real;
}
1.3.12.1.2.2 +2 -2
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Otherwise.java
Index: Otherwise.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Otherwise.java,v
retrieving revision 1.3.12.1.2.1
retrieving revision 1.3.12.1.2.2
diff -u -r1.3.12.1.2.1 -r1.3.12.1.2.2
--- Otherwise.java 13 Jan 2003 22:02:52 -0000 1.3.12.1.2.1
+++ Otherwise.java 15 Jan 2003 14:43:04 -0000 1.3.12.1.2.2
@@ -69,8 +69,8 @@
final class Otherwise extends Instruction {
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
- typeCheckContents(stable);
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
+ typeCheckContents(ccontext);
return Type.Void;
}
1.16.2.1.2.4 +0 -0
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Output.java
Index: Output.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Output.java,v
retrieving revision 1.16.2.1.2.3
retrieving revision 1.16.2.1.2.4
diff -u -r1.16.2.1.2.3 -r1.16.2.1.2.4
1.19.8.1.2.4 +7 -5
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Param.java
Index: Param.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Param.java,v
retrieving revision 1.19.8.1.2.3
retrieving revision 1.19.8.1.2.4
diff -u -r1.19.8.1.2.3 -r1.19.8.1.2.4
--- Param.java 13 Jan 2003 22:02:52 -0000 1.19.8.1.2.3
+++ Param.java 15 Jan 2003 14:43:04 -0000 1.19.8.1.2.4
@@ -101,8 +101,10 @@
if (parent instanceof Stylesheet) {
// Mark this as a global parameter
_isLocal = false;
+
// Check if a global variable with this name already exists...
- Param param = parser.getSymbolTable().lookupParam(_name);
+ Param param = (Param) getStaticContext().getVariable(_name);
+
// ...and if it does we need to check import precedence
if (param != null) {
final int us = this.getImportPrecedence();
@@ -123,7 +125,7 @@
}
// Add this variable if we have higher precedence
((Stylesheet)parent).addParam(this);
- parser.getSymbolTable().addParam(this);
+ getStaticContext().addVariable(this);
}
else if (parent instanceof Template) {
_isLocal = true;
@@ -136,15 +138,15 @@
* 'select' expression (if present) or is a result tree if the parameter
* element has a body and no 'select' expression.
*/
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
if (_select != null) {
- _type = _select.typeCheck(stable);
+ _type = _select.typeCheck(ccontext);
if (_type instanceof ReferenceType == false) {
_select = new CastExpr(_select, Type.Reference);
}
}
else if (hasContents()) {
- typeCheckContents(stable);
+ typeCheckContents(ccontext);
}
_type = Type.Reference;
1.19.2.1.2.3 +3 -3
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ParentLocationPath.java
Index: ParentLocationPath.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ParentLocationPath.java,v
retrieving revision 1.19.2.1.2.2
retrieving revision 1.19.2.1.2.3
diff -u -r1.19.2.1.2.2 -r1.19.2.1.2.3
--- ParentLocationPath.java 13 Jan 2003 22:02:52 -0000 1.19.2.1.2.2
+++ ParentLocationPath.java 15 Jan 2003 14:43:04 -0000 1.19.2.1.2.3
@@ -107,9 +107,9 @@
return "ParentLocationPath(" + _path + ", " + _step + ')';
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
- stype = _step.typeCheck(stable);
- _path.typeCheck(stable);
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
+ stype = _step.typeCheck(ccontext);
+ _path.typeCheck(ccontext);
if (_axisMismatch) enableNodeOrdering();
1.5.2.1.2.2 +3 -3
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ParentPattern.java
Index: ParentPattern.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ParentPattern.java,v
retrieving revision 1.5.2.1.2.1
retrieving revision 1.5.2.1.2.2
diff -u -r1.5.2.1.2.1 -r1.5.2.1.2.2
--- ParentPattern.java 13 Jan 2003 22:02:52 -0000 1.5.2.1.2.1
+++ ParentPattern.java 15 Jan 2003 14:43:04 -0000 1.5.2.1.2.2
@@ -88,9 +88,9 @@
_right.reduceKernelPattern();
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
- _left.typeCheck(stable);
- return _right.typeCheck(stable);
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
+ _left.typeCheck(ccontext);
+ return _right.typeCheck(ccontext);
}
public void translate(ClassGenerator classGen, MethodGenerator
methodGen) {
1.51.2.1.2.4 +94 -91
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Parser.java
Index: Parser.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Parser.java,v
retrieving revision 1.51.2.1.2.3
retrieving revision 1.51.2.1.2.4
diff -u -r1.51.2.1.2.3 -r1.51.2.1.2.4
--- Parser.java 13 Jan 2003 22:02:52 -0000 1.51.2.1.2.3
+++ Parser.java 15 Jan 2003 14:43:04 -0000 1.51.2.1.2.4
@@ -108,10 +108,14 @@
private QName _extensionElementPrefixes;
private HashMap _variableScope;
private Stylesheet _currentStylesheet;
- private SymbolTable _symbolTable; // Maps QNames to syntax-tree nodes
private Output _output = null;
private Template _template; // Reference to the template being
parsed.
+ /**
+ * A reference to the static context implementation.
+ */
+ private StaticContextImpl _staticContext;
+
private boolean _rootNamespaceDef = false; // Used for validity check
private SyntaxTreeNode _root = null;
@@ -133,15 +137,16 @@
_template = null;
_errors = new ArrayList();
_warnings = new ArrayList();
- _symbolTable = new SymbolTable();
- _xpathParser = new XPathParser(this);
_currentStylesheet = null;
_currentImportPrecedence = 1;
+ _staticContext = StaticContextImpl.getInstance(null);
+ _xpathParser =
+ new XPathParser(CompilerContextImpl.getInstance(),
_staticContext);
initStdClasses();
initInstructionAttrs();
initExtClasses();
- initSymbolTable();
+ initStaticContextPrimops();
_useAttributeSets =
getQName(XSLT_URI, XSL, "use-attribute-sets");
@@ -254,6 +259,9 @@
}
public QName getQNameSafe(final String stringRep) {
+ StaticContext scontext =
+ StaticContextImpl.getInstance(_currentStylesheet);
+
// parse and retrieve namespace
final int colon = stringRep.lastIndexOf(':');
if (colon != -1) {
@@ -263,14 +271,14 @@
// Get the namespace uri from the symbol table
if (prefix.equals(XMLNS_PREFIX) == false) {
- namespace = _symbolTable.lookupNamespace(prefix);
+ namespace = _staticContext.getNamespace(prefix);
if (namespace == null) namespace = EMPTYSTRING;
}
return getQName(namespace, prefix, localname);
}
else {
final String uri = stringRep.equals(XMLNS_PREFIX) ? null
- : _symbolTable.lookupNamespace(EMPTYSTRING);
+ : _staticContext.getNamespace(EMPTYSTRING);
return getQName(uri, null, stringRep);
}
}
@@ -299,7 +307,7 @@
// Get the namespace uri from the symbol table
if (prefix.equals(XMLNS_PREFIX) == false) {
- namespace = _symbolTable.lookupNamespace(prefix);
+ namespace = _staticContext.getNamespace(prefix);
if (namespace == null && reportError) {
final int line = _locator.getLineNumber();
ErrorMsg err = new ErrorMsg(ErrorMsg.NAMESPACE_UNDEF_ERR,
@@ -314,7 +322,7 @@
ignoreDefaultNs = true;
}
final String defURI = ignoreDefaultNs ? null
- : _symbolTable.lookupNamespace(EMPTYSTRING);
+ : _staticContext.getNamespace(EMPTYSTRING);
return getQName(defURI, null, stringRep);
}
}
@@ -418,7 +426,7 @@
}
}
if (!errorsFound()) {
- stylesheet.typeCheck(_symbolTable);
+ stylesheet.typeCheck(CompilerContextImpl.getInstance());
}
}
}
@@ -715,7 +723,7 @@
}
public boolean functionSupported(String fname) {
- return(_symbolTable.lookupPrimop(fname) != null);
+ return (_staticContext.getPrimop(fname) != null);
}
private void initExtClasses() {
@@ -734,9 +742,9 @@
}
/**
- * Add primops and base functions to the symbol table.
+ * Add primops and base functions to the static context.
*/
- private void initSymbolTable() {
+ private void initStaticContextPrimops() {
MethodType I_V = new MethodType(Type.Int, Type.Void);
MethodType I_R = new MethodType(Type.Int, Type.Real);
MethodType I_S = new MethodType(Type.Int, Type.String);
@@ -795,103 +803,99 @@
// The following functions are inlined
- _symbolTable.addPrimop("current", A_V);
- _symbolTable.addPrimop("last", I_V);
- _symbolTable.addPrimop("position", I_V);
- _symbolTable.addPrimop("true", B_V);
- _symbolTable.addPrimop("false", B_V);
- _symbolTable.addPrimop("not", B_B);
- _symbolTable.addPrimop("name", S_V);
- _symbolTable.addPrimop("name", S_A);
- _symbolTable.addPrimop("generate-id", S_V);
- _symbolTable.addPrimop("generate-id", S_A);
- _symbolTable.addPrimop("ceiling", R_R);
- _symbolTable.addPrimop("floor", R_R);
- _symbolTable.addPrimop("round", R_R);
- _symbolTable.addPrimop("contains", B_SS);
- _symbolTable.addPrimop("number", R_O);
- _symbolTable.addPrimop("number", R_V);
- _symbolTable.addPrimop("boolean", B_O);
- _symbolTable.addPrimop("string", S_O);
- _symbolTable.addPrimop("string", S_V);
- _symbolTable.addPrimop("translate", S_SSS);
- _symbolTable.addPrimop("string-length", I_V);
- _symbolTable.addPrimop("string-length", I_S);
- _symbolTable.addPrimop("starts-with", B_SS);
- _symbolTable.addPrimop("format-number", S_DS);
- _symbolTable.addPrimop("format-number", S_DSS);
- _symbolTable.addPrimop("unparsed-entity-uri", S_S);
- _symbolTable.addPrimop("key", D_SS);
- _symbolTable.addPrimop("key", D_SD);
- _symbolTable.addPrimop("id", D_S);
- _symbolTable.addPrimop("id", D_D);
- _symbolTable.addPrimop("namespace-uri", S_V);
- _symbolTable.addPrimop("function-available", B_S);
- _symbolTable.addPrimop("element-available", B_S);
- _symbolTable.addPrimop("document", D_S);
- _symbolTable.addPrimop("document", D_V);
+ _staticContext.addPrimop("current", A_V);
+ _staticContext.addPrimop("last", I_V);
+ _staticContext.addPrimop("position", I_V);
+ _staticContext.addPrimop("true", B_V);
+ _staticContext.addPrimop("false", B_V);
+ _staticContext.addPrimop("not", B_B);
+ _staticContext.addPrimop("name", S_V);
+ _staticContext.addPrimop("name", S_A);
+ _staticContext.addPrimop("generate-id", S_V);
+ _staticContext.addPrimop("generate-id", S_A);
+ _staticContext.addPrimop("ceiling", R_R);
+ _staticContext.addPrimop("floor", R_R);
+ _staticContext.addPrimop("round", R_R);
+ _staticContext.addPrimop("contains", B_SS);
+ _staticContext.addPrimop("number", R_O);
+ _staticContext.addPrimop("number", R_V);
+ _staticContext.addPrimop("boolean", B_O);
+ _staticContext.addPrimop("string", S_O);
+ _staticContext.addPrimop("string", S_V);
+ _staticContext.addPrimop("translate", S_SSS);
+ _staticContext.addPrimop("string-length", I_V);
+ _staticContext.addPrimop("string-length", I_S);
+ _staticContext.addPrimop("starts-with", B_SS);
+ _staticContext.addPrimop("format-number", S_DS);
+ _staticContext.addPrimop("format-number", S_DSS);
+ _staticContext.addPrimop("unparsed-entity-uri", S_S);
+ _staticContext.addPrimop("key", D_SS);
+ _staticContext.addPrimop("key", D_SD);
+ _staticContext.addPrimop("id", D_S);
+ _staticContext.addPrimop("id", D_D);
+ _staticContext.addPrimop("namespace-uri", S_V);
+ _staticContext.addPrimop("function-available", B_S);
+ _staticContext.addPrimop("element-available", B_S);
+ _staticContext.addPrimop("document", D_S);
+ _staticContext.addPrimop("document", D_V);
// The following functions are implemented in the basis library
- _symbolTable.addPrimop("count", I_D);
- _symbolTable.addPrimop("sum", R_D);
- _symbolTable.addPrimop("local-name", S_V);
- _symbolTable.addPrimop("local-name", S_D);
- _symbolTable.addPrimop("namespace-uri", S_V);
- _symbolTable.addPrimop("namespace-uri", S_D);
- _symbolTable.addPrimop("substring", S_SR);
- _symbolTable.addPrimop("substring", S_SRR);
- _symbolTable.addPrimop("substring-after", S_SS);
- _symbolTable.addPrimop("substring-before", S_SS);
- _symbolTable.addPrimop("normalize-space", S_V);
- _symbolTable.addPrimop("normalize-space", S_S);
- _symbolTable.addPrimop("system-property", S_S);
+ _staticContext.addPrimop("count", I_D);
+ _staticContext.addPrimop("sum", R_D);
+ _staticContext.addPrimop("local-name", S_V);
+ _staticContext.addPrimop("local-name", S_D);
+ _staticContext.addPrimop("namespace-uri", S_V);
+ _staticContext.addPrimop("namespace-uri", S_D);
+ _staticContext.addPrimop("substring", S_SR);
+ _staticContext.addPrimop("substring", S_SRR);
+ _staticContext.addPrimop("substring-after", S_SS);
+ _staticContext.addPrimop("substring-before", S_SS);
+ _staticContext.addPrimop("normalize-space", S_V);
+ _staticContext.addPrimop("normalize-space", S_S);
+ _staticContext.addPrimop("system-property", S_S);
// Extensions
- _symbolTable.addPrimop("nodeset", D_O);
- _symbolTable.addPrimop("objectType", S_O);
+ _staticContext.addPrimop("nodeset", D_O);
+ _staticContext.addPrimop("objectType", S_O);
// Operators +, -, *, /, % defined on real types.
- _symbolTable.addPrimop("+", R_RR);
- _symbolTable.addPrimop("-", R_RR);
- _symbolTable.addPrimop("*", R_RR);
- _symbolTable.addPrimop("/", R_RR);
- _symbolTable.addPrimop("%", R_RR);
+ _staticContext.addPrimop("+", R_RR);
+ _staticContext.addPrimop("-", R_RR);
+ _staticContext.addPrimop("*", R_RR);
+ _staticContext.addPrimop("/", R_RR);
+ _staticContext.addPrimop("%", R_RR);
// Operators +, -, * defined on integer types.
// Operators / and % are not defined on integers (may cause exception)
- _symbolTable.addPrimop("+", I_II);
- _symbolTable.addPrimop("-", I_II);
- _symbolTable.addPrimop("*", I_II);
+ _staticContext.addPrimop("+", I_II);
+ _staticContext.addPrimop("-", I_II);
+ _staticContext.addPrimop("*", I_II);
// Operators <, <= >, >= defined on real types.
- _symbolTable.addPrimop("<", B_RR);
- _symbolTable.addPrimop("<=", B_RR);
- _symbolTable.addPrimop(">", B_RR);
- _symbolTable.addPrimop(">=", B_RR);
+ _staticContext.addPrimop("<", B_RR);
+ _staticContext.addPrimop("<=", B_RR);
+ _staticContext.addPrimop(">", B_RR);
+ _staticContext.addPrimop(">=", B_RR);
// Operators <, <= >, >= defined on int types.
- _symbolTable.addPrimop("<", B_II);
- _symbolTable.addPrimop("<=", B_II);
- _symbolTable.addPrimop(">", B_II);
- _symbolTable.addPrimop(">=", B_II);
+ _staticContext.addPrimop("<", B_II);
+ _staticContext.addPrimop("<=", B_II);
+ _staticContext.addPrimop(">", B_II);
+ _staticContext.addPrimop(">=", B_II);
// Operators <, <= >, >= defined on boolean types.
- _symbolTable.addPrimop("<", B_BB);
- _symbolTable.addPrimop("<=", B_BB);
- _symbolTable.addPrimop(">", B_BB);
- _symbolTable.addPrimop(">=", B_BB);
+ _staticContext.addPrimop("<", B_BB);
+ _staticContext.addPrimop("<=", B_BB);
+ _staticContext.addPrimop(">", B_BB);
+ _staticContext.addPrimop(">=", B_BB);
// Operators 'and' and 'or'.
- _symbolTable.addPrimop("or", B_BB);
- _symbolTable.addPrimop("and", B_BB);
+ _staticContext.addPrimop("or", B_BB);
+ _staticContext.addPrimop("and", B_BB);
// Unary minus.
- _symbolTable.addPrimop("u-", R_R);
- _symbolTable.addPrimop("u-", I_I);
- }
-
- public SymbolTable getSymbolTable() {
- return _symbolTable;
+ _staticContext.addPrimop("u-", R_R);
+ _staticContext.addPrimop("u-", I_I);
}
public Template getTemplate() {
@@ -1274,7 +1278,6 @@
// Extension elements and excluded elements have to be
// handled at this point in order to correctly generate
// Fallback elements from <xsl:fallback>s.
- getSymbolTable().setCurrentNode(element);
((Stylesheet)element).excludeExtensionPrefixes(this);
}
1.1.16.1.2.1 +2 -2
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Pattern.java
Index: Pattern.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Pattern.java,v
retrieving revision 1.1.16.1
retrieving revision 1.1.16.1.2.1
diff -u -r1.1.16.1 -r1.1.16.1.2.1
--- Pattern.java 14 Aug 2002 19:21:33 -0000 1.1.16.1
+++ Pattern.java 15 Jan 2003 14:43:04 -0000 1.1.16.1.2.1
@@ -71,7 +71,7 @@
* A <code>NodeType</code> has a number of subtypes defined by
* <code>NodeType._type</code> corresponding to each type of node.
*/
- public abstract Type typeCheck(SymbolTable stable) throws TypeCheckError;
+ public abstract Type typeCheck(CompilerContext ccontext) throws
TypeCheckError;
/**
* Translate this node into JVM bytecodes. Patterns are translated as
1.24.2.1.2.4 +4 -4
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Predicate.java
Index: Predicate.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Predicate.java,v
retrieving revision 1.24.2.1.2.3
retrieving revision 1.24.2.1.2.4
diff -u -r1.24.2.1.2.3 -r1.24.2.1.2.4
--- Predicate.java 13 Jan 2003 22:02:52 -0000 1.24.2.1.2.3
+++ Predicate.java 15 Jan 2003 14:43:04 -0000 1.24.2.1.2.4
@@ -212,9 +212,9 @@
* at compile time if its type is number or not. Hence, expressions of
* reference type are always converted to booleans.
*/
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
- Type texp = _exp.typeCheck(stable);
+ Type texp = _exp.typeCheck(ccontext);
// We need explicit type information for reference types - no good!
if (texp instanceof ReferenceType) {
@@ -227,7 +227,7 @@
if (texp instanceof ResultTreeType) {
_exp = new CastExpr(_exp, Type.Boolean);
_exp = new CastExpr(_exp, Type.Real);
- texp = _exp.typeCheck(stable);
+ texp = _exp.typeCheck(ccontext);
}
// Numerical types will be converted to a position filter
@@ -250,7 +250,7 @@
positionCall.setParent(this);
_exp = new EqualityExpr(EqualityExpr.EQ, positionCall, _exp);
- if (_exp.typeCheck(stable) != Type.Boolean) {
+ if (_exp.typeCheck(ccontext) != Type.Boolean) {
_exp = new CastExpr(_exp, Type.Boolean);
}
1.7.2.1.2.2 +3 -3
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ProcessingInstruction.java
Index: ProcessingInstruction.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ProcessingInstruction.java,v
retrieving revision 1.7.2.1.2.1
retrieving revision 1.7.2.1.2.2
diff -u -r1.7.2.1.2.1 -r1.7.2.1.2.2
--- ProcessingInstruction.java 13 Jan 2003 22:02:52 -0000
1.7.2.1.2.1
+++ ProcessingInstruction.java 15 Jan 2003 14:43:04 -0000
1.7.2.1.2.2
@@ -82,9 +82,9 @@
parseContents(ccontext);
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
- _name.typeCheck(stable);
- typeCheckContents(stable);
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
+ _name.typeCheck(ccontext);
+ typeCheckContents(ccontext);
return Type.Void;
}
1.2.8.1.2.2 +3 -3
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ProcessingInstructionPattern.java
Index: ProcessingInstructionPattern.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ProcessingInstructionPattern.java,v
retrieving revision 1.2.8.1.2.1
retrieving revision 1.2.8.1.2.2
diff -u -r1.2.8.1.2.1 -r1.2.8.1.2.2
--- ProcessingInstructionPattern.java 10 Jan 2003 16:50:41 -0000
1.2.8.1.2.1
+++ ProcessingInstructionPattern.java 15 Jan 2003 14:43:05 -0000
1.2.8.1.2.2
@@ -102,13 +102,13 @@
return false;
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
if (hasPredicates()) {
// Type check all the predicates (e -> position() = e)
final int n = _predicates.size();
for (int i = 0; i < n; i++) {
final Predicate pred = (Predicate)_predicates.get(i);
- pred.typeCheck(stable);
+ pred.typeCheck(ccontext);
}
}
return Type.NodeSet;
1.2.8.1.2.1 +2 -2
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/RealExpr.java
Index: RealExpr.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/RealExpr.java,v
retrieving revision 1.2.8.1
retrieving revision 1.2.8.1.2.1
diff -u -r1.2.8.1 -r1.2.8.1.2.1
--- RealExpr.java 14 Aug 2002 19:21:33 -0000 1.2.8.1
+++ RealExpr.java 15 Jan 2003 14:43:05 -0000 1.2.8.1.2.1
@@ -74,7 +74,7 @@
_value = value;
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
return _type = Type.Real;
}
1.12.8.1.2.4 +6 -6
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/RelationalExpr.java
Index: RelationalExpr.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/RelationalExpr.java,v
retrieving revision 1.12.8.1.2.3
retrieving revision 1.12.8.1.2.4
diff -u -r1.12.8.1.2.3 -r1.12.8.1.2.4
--- RelationalExpr.java 13 Jan 2003 22:02:52 -0000 1.12.8.1.2.3
+++ RelationalExpr.java 15 Jan 2003 14:43:05 -0000 1.12.8.1.2.4
@@ -104,9 +104,9 @@
_right.getType() instanceof NodeSetType;
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
- Type tleft = _left.typeCheck(stable);
- Type tright = _right.typeCheck(stable);
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
+ Type tleft = _left.typeCheck(ccontext);
+ Type tright = _right.typeCheck(ccontext);
//bug fix # 2838, cast to reals if both are result tree fragments
if (tleft instanceof ResultTreeType &&
@@ -189,9 +189,9 @@
}
// Lookup the table of primops to find the best match
- MethodType ptype = lookupPrimop(stable, Operators.names[_op],
- new MethodType(Type.Void,
- tleft, tright));
+ MethodType ptype = lookupPrimop(getStaticContext(),
+ Operators.names[_op],
+ new MethodType(Type.Void, tleft, tright));
if (ptype != null) {
Type arg1 = (Type) ptype.argsType().get(0);
1.3.8.1.2.1 +2 -2
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/SimpleAttributeValue.java
Index: SimpleAttributeValue.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/SimpleAttributeValue.java,v
retrieving revision 1.3.8.1
retrieving revision 1.3.8.1.2.1
diff -u -r1.3.8.1 -r1.3.8.1.2.1
--- SimpleAttributeValue.java 14 Aug 2002 19:21:33 -0000 1.3.8.1
+++ SimpleAttributeValue.java 15 Jan 2003 14:43:05 -0000 1.3.8.1.2.1
@@ -83,7 +83,7 @@
* Returns this attribute value's type (String).
* @param stable The compiler/parser's symbol table
*/
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
return _type = Type.String;
}
1.15.2.1.2.4 +6 -6
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Sort.java
Index: Sort.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Sort.java,v
retrieving revision 1.15.2.1.2.3
retrieving revision 1.15.2.1.2.4
diff -u -r1.15.2.1.2.3 -r1.15.2.1.2.4
--- Sort.java 13 Jan 2003 22:02:52 -0000 1.15.2.1.2.3
+++ Sort.java 15 Jan 2003 14:43:05 -0000 1.15.2.1.2.4
@@ -174,7 +174,7 @@
val = getAttribute("data-type");
if (val.length() == 0) {
try {
- final Type type = _select.typeCheck(parser.getSymbolTable());
+ final Type type = _select.typeCheck(getCompilerContext());
if (type instanceof IntType)
val = "number";
else
@@ -202,8 +202,8 @@
* Run type checks on the attributes; expression must return a string
* which we will use as a sort key
*/
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
- final Type tselect = _select.typeCheck(stable);
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
+ final Type tselect = _select.typeCheck(ccontext);
// If the sort data-type is not set we use the natural data-type
// of the data we will sort
@@ -211,9 +211,9 @@
_select = new CastExpr(_select, Type.String);
}
- _order.typeCheck(stable);
- _caseOrder.typeCheck(stable);
- _dataType.typeCheck(stable);
+ _order.typeCheck(ccontext);
+ _caseOrder.typeCheck(ccontext);
+ _dataType.typeCheck(ccontext);
return Type.Void;
}
1.4.8.1.2.2 +4 -4
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/StartsWithCall.java
Index: StartsWithCall.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/StartsWithCall.java,v
retrieving revision 1.4.8.1.2.1
retrieving revision 1.4.8.1.2.2
diff -u -r1.4.8.1.2.1 -r1.4.8.1.2.2
--- StartsWithCall.java 10 Jan 2003 16:50:41 -0000 1.4.8.1.2.1
+++ StartsWithCall.java 15 Jan 2003 14:43:05 -0000 1.4.8.1.2.2
@@ -85,7 +85,7 @@
/**
* Type check the two parameters for this function
*/
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
// Check that the function was passed exactly two arguments
if (argumentCount() != 2) {
@@ -96,13 +96,13 @@
// The first argument must be a String, or cast to a String
_base = argument(0);
- Type baseType = _base.typeCheck(stable);
+ Type baseType = _base.typeCheck(ccontext);
if (baseType != Type.String)
_base = new CastExpr(_base, Type.String);
// The second argument must also be a String, or cast to a String
_token = argument(1);
- Type tokenType = _token.typeCheck(stable);
+ Type tokenType = _token.typeCheck(ccontext);
if (tokenType != Type.String)
_token = new CastExpr(_token, Type.String);
1.1.2.2 +0 -0
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Attic/StaticContext.java
Index: StaticContext.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Attic/StaticContext.java,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -r1.1.2.1 -r1.1.2.2
1.1.2.2 +10 -13
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Attic/StaticContextImpl.java
Index: StaticContextImpl.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Attic/StaticContextImpl.java,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -r1.1.2.1 -r1.1.2.2
--- StaticContextImpl.java 13 Jan 2003 22:02:53 -0000 1.1.2.1
+++ StaticContextImpl.java 15 Jan 2003 14:43:05 -0000 1.1.2.2
@@ -107,11 +107,18 @@
if (result == null) {
_staticContext.set(result = new StaticContextImpl());
}
- result._currentNode = current;
+ result.setCurrentNode(current);
result.clearCache();
return result;
}
+ /**
+ * Set current node.
+ */
+ public void setCurrentNode(SyntaxTreeNode currentNode) {
+ _currentNode = currentNode;
+ }
+
// -- Decimal Formats ------------------------------------------------
private HashMap _decimalFormats = null;
@@ -453,7 +460,7 @@
* Register a namespace URI so that it will not be declared in the
* output unless it is actually referenced in the output.
*/
- public void setExcludeUri(String uri) {
+ public void setExcludeURI(String uri) {
// The null-namespace cannot be excluded
if (uri == null) return;
@@ -483,7 +490,7 @@
uri = getNamespace(Constants.EMPTYSTRING);
else
uri = getNamespace(prefix);
- if (uri != null) setExcludeUri(uri);
+ if (uri != null) setExcludeURI(uri);
}
}
}
@@ -522,16 +529,6 @@
}
// -- SHOULD BE MOVED OUT OF THIS CLASS !!!! -------------------------
-
- /**
- * This is used for xsl:attribute elements that have a "namespace"
- * attribute that is currently not defined using xmlns:
- */
- private int _nsCounter = 0;
-
- public String generateNamespacePrefix() {
- return(new String("ns"+(_nsCounter++)));
- }
private final HashMap _stylesheets = new HashMap();
1.37.2.1.2.4 +3 -3
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Step.java
Index: Step.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Step.java,v
retrieving revision 1.37.2.1.2.3
retrieving revision 1.37.2.1.2.4
diff -u -r1.37.2.1.2.3 -r1.37.2.1.2.4
--- Step.java 13 Jan 2003 22:02:53 -0000 1.37.2.1.2.3
+++ Step.java 15 Jan 2003 14:43:05 -0000 1.37.2.1.2.4
@@ -207,7 +207,7 @@
* assigned type node if they have no predicates. All other steps
* have type node-set.
*/
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
// Save this value for later - important for testing for special
// combinations of steps and patterns than can be optimised
@@ -229,7 +229,7 @@
final int n = _predicates.size();
for (int i = 0; i < n; i++) {
final Expression pred = (Expression)_predicates.get(i);
- pred.typeCheck(stable);
+ pred.typeCheck(ccontext);
}
}
@@ -395,7 +395,7 @@
else {
ParentLocationPath path = new ParentLocationPath(this,step);
try {
- path.typeCheck(getParser().getSymbolTable());
+ path.typeCheck(CompilerContextImpl.getInstance());
}
catch (TypeCheckError e) { }
path.translate(classGen, methodGen);
1.17.2.1.2.4 +4 -4
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/StepPattern.java
Index: StepPattern.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/StepPattern.java,v
retrieving revision 1.17.2.1.2.3
retrieving revision 1.17.2.1.2.4
diff -u -r1.17.2.1.2.3 -r1.17.2.1.2.4
--- StepPattern.java 13 Jan 2003 22:02:53 -0000 1.17.2.1.2.3
+++ StepPattern.java 15 Jan 2003 14:43:05 -0000 1.17.2.1.2.4
@@ -184,13 +184,13 @@
return "__step_pattern_iter_" + getXSLTC().nextStepPatternSerial();
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
if (hasPredicates()) {
// Type check all the predicates (e -> position() = e)
final int n = _predicates.size();
for (int i = 0; i < n; i++) {
final Predicate pred = (Predicate)_predicates.get(i);
- pred.typeCheck(stable);
+ pred.typeCheck(ccontext);
}
// Analyze context cases
@@ -200,7 +200,7 @@
if (_contextCase == SIMPLE_CONTEXT) {
_step = new Step(_axis, _nodeType, null);
_step.setParser(getParser());
- _step.typeCheck(stable);
+ _step.typeCheck(ccontext);
}
else if (_contextCase == GENERAL_CONTEXT) {
final int len = _predicates.size();
@@ -208,7 +208,7 @@
((Predicate)_predicates.get(i)).dontOptimize();
_step = new Step(_axis, _nodeType, _predicates);
_step.setParser(getParser());
- _step.typeCheck(stable);
+ _step.typeCheck(ccontext);
}
}
return _axis == Axis.CHILD ? Type.Element : Type.Attribute;
1.3.8.1.2.2 +3 -3
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/StringCall.java
Index: StringCall.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/StringCall.java,v
retrieving revision 1.3.8.1.2.1
retrieving revision 1.3.8.1.2.2
diff -u -r1.3.8.1.2.1 -r1.3.8.1.2.2
--- StringCall.java 10 Jan 2003 16:50:42 -0000 1.3.8.1.2.1
+++ StringCall.java 15 Jan 2003 14:43:05 -0000 1.3.8.1.2.2
@@ -73,7 +73,7 @@
super(fname, arguments);
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
final int argc = argumentCount();
if (argc > 1) {
ErrorMsg err = new ErrorMsg(ErrorMsg.ILLEGAL_ARG_ERR, this);
@@ -81,7 +81,7 @@
}
if (argc > 0) {
- argument().typeCheck(stable);
+ argument().typeCheck(ccontext);
}
return _type = Type.String;
}
1.43.2.1.2.4 +13 -17
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Stylesheet.java
Index: Stylesheet.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Stylesheet.java,v
retrieving revision 1.43.2.1.2.3
retrieving revision 1.43.2.1.2.4
diff -u -r1.43.2.1.2.3 -r1.43.2.1.2.4
--- Stylesheet.java 13 Jan 2003 22:02:53 -0000 1.43.2.1.2.3
+++ Stylesheet.java 15 Jan 2003 14:43:05 -0000 1.43.2.1.2.4
@@ -322,12 +322,12 @@
/**
* Store extension URIs
*/
- private void extensionURI(String prefixes, SymbolTable stable) {
+ private void extensionURI(String prefixes, StaticContext scontext) {
if (prefixes != null) {
StringTokenizer tokens = new StringTokenizer(prefixes);
while (tokens.hasMoreTokens()) {
final String prefix = tokens.nextToken();
- final String uri = lookupNamespace(prefix);
+ final String uri = scontext.getNamespace(prefix);
if (uri != null) {
_extensions.put(uri, prefix);
}
@@ -340,15 +340,15 @@
}
public void excludeExtensionPrefixes(Parser parser) {
- final SymbolTable stable = parser.getSymbolTable();
+ final StaticContextImpl scontext = getStaticContext();
final String excludePrefixes = getAttribute("exclude-result-prefixes");
final String extensionPrefixes =
getAttribute("extension-element-prefixes");
// Exclude XSLT uri
- stable.excludeURI(Constants.XSLT_URI);
- stable.excludeNamespaces(excludePrefixes);
- stable.excludeNamespaces(extensionPrefixes);
- extensionURI(extensionPrefixes, stable);
+ scontext.setExcludeURI(Constants.XSLT_URI);
+ scontext.setExcludePrefixes(excludePrefixes);
+ scontext.setExcludePrefixes(extensionPrefixes);
+ extensionURI(extensionPrefixes, scontext);
}
/**
@@ -358,7 +358,7 @@
*/
public void parse(CompilerContext ccontext) {
final Parser parser = ccontext.getParser();
- final SymbolTable stable = parser.getSymbolTable();
+ final StaticContextImpl scontext = getStaticContext();
/*
// Make sure the XSL version set in this stylesheet
@@ -375,7 +375,7 @@
addPrefixMapping("xml", "http://www.w3.org/XML/1998/namespace");
// Report and error if more than one stylesheet defined
- final Stylesheet sheet = stable.addStylesheet(_name, this);
+ final Stylesheet sheet = scontext.addStylesheet(_name, this);
if (sheet != null) {
// Error: more that one stylesheet defined
ErrorMsg err = new ErrorMsg(ErrorMsg.MULTIPLE_STYLESHEET_ERR,this);
@@ -388,10 +388,8 @@
// method) as its only child, so the Template class has a special
// method that handles this (parseSimplified()).
if (_simplified) {
- stable.excludeURI(XSLT_URI);
+ scontext.setExcludeURI(XSLT_URI);
Template template = new Template();
- StaticContextImpl scontextImpl = getStaticContext();
- // TODO: update static context - scontextImpl.addStylesheet()
template.parseSimplified(ccontext);
}
// Parse the children of this node
@@ -414,7 +412,6 @@
SyntaxTreeNode child = (SyntaxTreeNode)contents.get(i);
if ((child instanceof VariableBase) ||
(child instanceof NamespaceAlias)) {
- parser.getSymbolTable().setCurrentNode(child);
child.parse(ccontext);
}
}
@@ -424,7 +421,6 @@
SyntaxTreeNode child = (SyntaxTreeNode)contents.get(i);
if (!(child instanceof VariableBase) &&
!(child instanceof NamespaceAlias)) {
- parser.getSymbolTable().setCurrentNode(child);
child.parse(ccontext);
}
@@ -478,13 +474,13 @@
/**
* Type check all the children of this node.
*/
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
final int count = _globals.size();
for (int i = 0; i < count; i++) {
final VariableBase var = (VariableBase)_globals.get(i);
- var.typeCheck(stable);
+ var.typeCheck(ccontext);
}
- return typeCheckContents(stable);
+ return typeCheckContents(ccontext);
}
/**
1.20.2.1.2.4 +3 -8
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/SyntaxTreeNode.java
Index: SyntaxTreeNode.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/SyntaxTreeNode.java,v
retrieving revision 1.20.2.1.2.3
retrieving revision 1.20.2.1.2.4
diff -u -r1.20.2.1.2.3 -r1.20.2.1.2.4
--- SyntaxTreeNode.java 13 Jan 2003 22:02:53 -0000 1.20.2.1.2.3
+++ SyntaxTreeNode.java 15 Jan 2003 14:43:05 -0000 1.20.2.1.2.4
@@ -352,7 +352,7 @@
*
* @param stable The compiler/parser's symbol table
*/
- public abstract Type typeCheck(SymbolTable stable)
+ public abstract Type typeCheck(CompilerContext ccontext)
throws TypeCheckError;
/**
@@ -360,13 +360,13 @@
*
* @param stable The compiler/parser's symbol table
*/
- protected Type typeCheckContents(SymbolTable stable)
+ protected Type typeCheckContents(CompilerContext ccontext)
throws TypeCheckError
{
final int n = elementCount();
for (int i = 0; i < n; i++) {
SyntaxTreeNode item = (SyntaxTreeNode)_contents.get(i);
- item.typeCheck(stable);
+ item.typeCheck(ccontext);
}
return Type.Void;
}
@@ -570,11 +570,6 @@
// TEMP - this should go away !
protected final XSLTC getXSLTC() {
return getCompilerContext().getXSLTC();
- }
-
- // TEMP - this should go away !
- protected final SymbolTable getSymbolTable() {
- return null;
}
// TEMP - this should go away !
1.17.2.1.2.4 +5 -7
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Template.java
Index: Template.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Template.java,v
retrieving revision 1.17.2.1.2.3
retrieving revision 1.17.2.1.2.4
diff -u -r1.17.2.1.2.3 -r1.17.2.1.2.4
--- Template.java 13 Jan 2003 22:02:53 -0000 1.17.2.1.2.3
+++ Template.java 15 Jan 2003 14:43:05 -0000 1.17.2.1.2.4
@@ -160,8 +160,6 @@
private boolean resolveNamedTemplates(Template other, Parser parser) {
if (other == null) return true;
- SymbolTable stable = parser.getSymbolTable();
-
final int us = this.getImportPrecedence();
final int them = other.getImportPrecedence();
@@ -170,7 +168,7 @@
return true;
}
else if (us < them) {
- stable.addTemplate(other);
+ getStaticContext().addTemplate(other);
this.disable();
return true;
}
@@ -220,7 +218,7 @@
// Add the (named) template to the symbol table
if (_name != null) {
- Template other = parser.getSymbolTable().addTemplate(this);
+ Template other = getStaticContext().addTemplate(this);
if (!resolveNamedTemplates(other, parser)) {
ErrorMsg err =
new ErrorMsg(ErrorMsg.TEMPLATE_REDEF_ERR, _name, this);
@@ -270,12 +268,12 @@
}
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
if (_pattern != null) {
- _pattern.typeCheck(stable);
+ _pattern.typeCheck(ccontext);
}
- return typeCheckContents(stable);
+ return typeCheckContents(ccontext);
}
public void translate(ClassGenerator classGen, MethodGenerator
methodGen) {
1.12.2.1.2.3 +0 -0
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Text.java
Index: Text.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Text.java,v
retrieving revision 1.12.2.1.2.2
retrieving revision 1.12.2.1.2.3
diff -u -r1.12.2.1.2.2 -r1.12.2.1.2.3
1.4.8.1.2.3 +2 -2
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/TopLevelElement.java
Index: TopLevelElement.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/TopLevelElement.java,v
retrieving revision 1.4.8.1.2.2
retrieving revision 1.4.8.1.2.3
diff -u -r1.4.8.1.2.2 -r1.4.8.1.2.3
--- TopLevelElement.java 13 Jan 2003 22:02:53 -0000 1.4.8.1.2.2
+++ TopLevelElement.java 15 Jan 2003 14:43:05 -0000 1.4.8.1.2.3
@@ -72,8 +72,8 @@
/**
* Type check all the children of this node.
*/
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
- return typeCheckContents(stable);
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
+ return typeCheckContents(ccontext);
}
/**
1.7.8.1.2.3 +3 -3
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/TransletOutput.java
Index: TransletOutput.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/TransletOutput.java,v
retrieving revision 1.7.8.1.2.2
retrieving revision 1.7.8.1.2.3
diff -u -r1.7.8.1.2.2 -r1.7.8.1.2.3
--- TransletOutput.java 13 Jan 2003 22:02:53 -0000 1.7.8.1.2.2
+++ TransletOutput.java 15 Jan 2003 14:43:05 -0000 1.7.8.1.2.3
@@ -106,12 +106,12 @@
/**
* Type checks the 'file' attribute (must be able to convert it to a
str).
*/
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
- final Type type = _filename.typeCheck(stable);
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
+ final Type type = _filename.typeCheck(ccontext);
if (type instanceof StringType == false) {
_filename = new CastExpr(_filename, Type.String);
}
- typeCheckContents(stable);
+ typeCheckContents(ccontext);
return Type.Void;
}
1.4.8.1.2.3 +4 -5
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/UnaryOpExpr.java
Index: UnaryOpExpr.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/UnaryOpExpr.java,v
retrieving revision 1.4.8.1.2.2
retrieving revision 1.4.8.1.2.3
diff -u -r1.4.8.1.2.2 -r1.4.8.1.2.3
--- UnaryOpExpr.java 13 Jan 2003 22:02:53 -0000 1.4.8.1.2.2
+++ UnaryOpExpr.java 15 Jan 2003 14:43:05 -0000 1.4.8.1.2.3
@@ -82,11 +82,10 @@
return(_left.hasPositionCall());
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
- final Type tleft = _left.typeCheck(stable);
- final MethodType ptype = lookupPrimop(stable, "u-",
- new MethodType(Type.Void,
- tleft));
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
+ final Type tleft = _left.typeCheck(ccontext);
+ final MethodType ptype = lookupPrimop(getStaticContext(), "u-",
+ new MethodType(Type.Void, tleft));
if (ptype != null) {
final Type arg1 = (Type) ptype.argsType().get(0);
1.6.8.1.2.3 +2 -2
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/UnionPathExpr.java
Index: UnionPathExpr.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/UnionPathExpr.java,v
retrieving revision 1.6.8.1.2.2
retrieving revision 1.6.8.1.2.3
diff -u -r1.6.8.1.2.2 -r1.6.8.1.2.3
--- UnionPathExpr.java 13 Jan 2003 22:02:53 -0000 1.6.8.1.2.2
+++ UnionPathExpr.java 15 Jan 2003 14:43:05 -0000 1.6.8.1.2.3
@@ -112,10 +112,10 @@
if (getParent() instanceof Expression) _reverse = false;
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
final int length = _components.length;
for (int i = 0; i < length; i++) {
- if (_components[i].typeCheck(stable) != Type.NodeSet) {
+ if (_components[i].typeCheck(ccontext) != Type.NodeSet) {
_components[i] = new CastExpr(_components[i], Type.NodeSet);
}
}
1.2.8.1.2.2 +3 -3
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/UnparsedEntityUriCall.java
Index: UnparsedEntityUriCall.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/UnparsedEntityUriCall.java,v
retrieving revision 1.2.8.1.2.1
retrieving revision 1.2.8.1.2.2
diff -u -r1.2.8.1.2.1 -r1.2.8.1.2.2
--- UnparsedEntityUriCall.java 10 Jan 2003 16:50:42 -0000
1.2.8.1.2.1
+++ UnparsedEntityUriCall.java 15 Jan 2003 14:43:05 -0000
1.2.8.1.2.2
@@ -78,8 +78,8 @@
_entity = argument();
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
- final Type entity = _entity.typeCheck(stable);
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
+ final Type entity = _entity.typeCheck(ccontext);
if (entity instanceof StringType == false) {
_entity = new CastExpr(_entity, Type.String);
}
1.3.2.1.2.1 +11 -7
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/UnresolvedRef.java
Index: UnresolvedRef.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/UnresolvedRef.java,v
retrieving revision 1.3.2.1
retrieving revision 1.3.2.1.2.1
diff -u -r1.3.2.1 -r1.3.2.1.2.1
--- UnresolvedRef.java 14 Aug 2002 19:21:34 -0000 1.3.2.1
+++ UnresolvedRef.java 15 Jan 2003 14:43:05 -0000 1.3.2.1.2.1
@@ -90,16 +90,20 @@
return(err);
}
- private VariableRefBase resolve(Parser parser, SymbolTable stable) {
+ private VariableRefBase resolve(CompilerContext ccontext) {
+ final Parser parser = ccontext.getParser();
+
// At this point the AST is already built and we should be able to
// find any declared global variable or parameter
VariableBase ref = parser.lookupVariable(_variableName);
- if (ref == null) ref = (VariableBase)stable.lookupName(_variableName);
+ if (ref == null) {
+ ref = getStaticContext().getVariable(_variableName);
+ }
if (ref == null) {
reportError();
return null;
}
-
+
// Insert the referenced variable as something the parent variable
// is dependent of (this class should only be used under variables)
if ((_var = findParentVariable()) != null) _var.addDependency(ref);
@@ -113,14 +117,14 @@
return null;
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
if (_ref != null) {
final String name = _variableName.toString();
ErrorMsg err = new ErrorMsg(ErrorMsg.CIRCULAR_VARIABLE_ERR,
name, this);
}
- if ((_ref = resolve(getParser(), stable)) != null) {
- return (_type = _ref.typeCheck(stable));
+ if ((_ref = resolve(ccontext)) != null) {
+ return (_type = _ref.typeCheck(ccontext));
}
throw new TypeCheckError(reportError());
}
1.3.8.1.2.3 +2 -2
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/UnsupportedElement.java
Index: UnsupportedElement.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/UnsupportedElement.java,v
retrieving revision 1.3.8.1.2.2
retrieving revision 1.3.8.1.2.3
diff -u -r1.3.8.1.2.2 -r1.3.8.1.2.3
--- UnsupportedElement.java 13 Jan 2003 22:02:53 -0000 1.3.8.1.2.2
+++ UnsupportedElement.java 15 Jan 2003 14:43:05 -0000 1.3.8.1.2.3
@@ -139,11 +139,11 @@
/**
* Run type check on the fallback element (if any).
*/
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
if (_fallback == null) {
throw new TypeCheckError(_message);
}
- return(_fallback.typeCheck(stable));
+ return(_fallback.typeCheck(ccontext));
}
/**
1.8.2.1.2.3 +2 -4
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/UseAttributeSets.java
Index: UseAttributeSets.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/UseAttributeSets.java,v
retrieving revision 1.8.2.1.2.2
retrieving revision 1.8.2.1.2.3
diff -u -r1.8.2.1.2.2 -r1.8.2.1.2.3
--- UseAttributeSets.java 13 Jan 2003 22:02:53 -0000 1.8.2.1.2.2
+++ UseAttributeSets.java 15 Jan 2003 14:43:05 -0000 1.8.2.1.2.3
@@ -108,7 +108,7 @@
/**
* Do nada.
*/
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
return Type.Void;
}
@@ -116,17 +116,15 @@
* Generate a call to the method compiled for this attribute set
*/
public void translate(ClassGenerator classGen, MethodGenerator
methodGen) {
-
final ConstantPoolGen cpg = classGen.getConstantPool();
final InstructionList il = methodGen.getInstructionList();
- final SymbolTable symbolTable = getParser().getSymbolTable();
// Go through each attribute set and generate a method call
for (int i=0; i<_sets.size(); i++) {
// Get the attribute set name
final QName name = (QName)_sets.get(i);
// Get the AttributeSet reference from the symbol table
- final AttributeSet attrs = symbolTable.lookupAttributeSet(name);
+ final AttributeSet attrs = getStaticContext().getAttributeSet(name);
// Compile the call to the set's method if the set exists
if (attrs != null) {
final String methodName = attrs.getMethodName();
1.7.8.1.2.2 +2 -2
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ValueOf.java
Index: ValueOf.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ValueOf.java,v
retrieving revision 1.7.8.1.2.1
retrieving revision 1.7.8.1.2.2
diff -u -r1.7.8.1.2.1 -r1.7.8.1.2.2
--- ValueOf.java 13 Jan 2003 22:02:53 -0000 1.7.8.1.2.1
+++ ValueOf.java 15 Jan 2003 14:43:05 -0000 1.7.8.1.2.2
@@ -87,8 +87,8 @@
if ((str != null) && (str.equals("yes"))) _escaping = false;
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
- Type type = _select.typeCheck(stable);
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
+ Type type = _select.typeCheck(ccontext);
if ((type != null) && (type.identicalTo(Type.String) == false))
_select = new CastExpr(_select, Type.String);
return Type.Void;
1.22.8.1.2.4 +6 -5
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Variable.java
Index: Variable.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Variable.java,v
retrieving revision 1.22.8.1.2.3
retrieving revision 1.22.8.1.2.4
diff -u -r1.22.8.1.2.3 -r1.22.8.1.2.4
--- Variable.java 13 Jan 2003 22:02:53 -0000 1.22.8.1.2.3
+++ Variable.java 15 Jan 2003 14:43:05 -0000 1.22.8.1.2.4
@@ -86,6 +86,7 @@
*/
public void parse(CompilerContext ccontext) {
final Parser parser = ccontext.getParser();
+ final StaticContextImpl scontext = getStaticContext();
// Parse 'name' and 'select' attributes plus parameter contents
super.parse(ccontext);
@@ -96,7 +97,7 @@
// Mark this as a global variable
_isLocal = false;
// Check if a global variable with this name already exists...
- Variable var = parser.getSymbolTable().lookupVariable(_name);
+ Variable var = (Variable) scontext.getVariable(_name);
// ...and if it does we need to check import precedence
if (var != null) {
final int us = this.getImportPrecedence();
@@ -117,7 +118,7 @@
// Add this variable if we have higher precedence
}
((Stylesheet)parent).addVariable(this);
- parser.getSymbolTable().addVariable(this);
+ scontext.addVariable(this);
}
else {
_isLocal = true;
@@ -128,15 +129,15 @@
* Runs a type check on either the variable element body or the
* expression in the 'select' attribute
*/
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
// Type check the 'select' expression if present
if (_select != null) {
- _type = _select.typeCheck(stable);
+ _type = _select.typeCheck(ccontext);
}
// Type check the element contents otherwise
else if (hasContents()) {
- typeCheckContents(stable);
+ typeCheckContents(ccontext);
_type = Type.ResultTree;
}
else {
1.16.2.1.2.3 +0 -0
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/VariableBase.java
Index: VariableBase.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/VariableBase.java,v
retrieving revision 1.16.2.1.2.2
retrieving revision 1.16.2.1.2.3
diff -u -r1.16.2.1.2.2 -r1.16.2.1.2.3
1.8.8.1.2.2 +3 -3
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/VariableRefBase.java
Index: VariableRefBase.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/VariableRefBase.java,v
retrieving revision 1.8.8.1.2.1
retrieving revision 1.8.8.1.2.2
diff -u -r1.8.8.1.2.1 -r1.8.8.1.2.2
--- VariableRefBase.java 2 Dec 2002 15:51:19 -0000 1.8.8.1.2.1
+++ VariableRefBase.java 15 Jan 2003 14:43:05 -0000 1.8.8.1.2.2
@@ -129,7 +129,7 @@
return "variable-ref("+_variable.getName()+'/'+_variable.getType()+')';
}
- public Type typeCheck(SymbolTable stable)
+ public Type typeCheck(CompilerContext ccontext)
throws TypeCheckError
{
// Returned cached type if available
@@ -164,7 +164,7 @@
// If that does not work we must force a type-check (this is normally
// only needed for globals in included/imported stylesheets
if (_type == null) {
- _variable.typeCheck(stable);
+ _variable.typeCheck(ccontext);
_type = _variable.getType();
}
1.10.2.1.2.3 +3 -3
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/When.java
Index: When.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/When.java,v
retrieving revision 1.10.2.1.2.2
retrieving revision 1.10.2.1.2.3
diff -u -r1.10.2.1.2.2 -r1.10.2.1.2.3
--- When.java 13 Jan 2003 22:02:53 -0000 1.10.2.1.2.2
+++ When.java 15 Jan 2003 14:43:05 -0000 1.10.2.1.2.3
@@ -106,14 +106,14 @@
* the support of a non-available element, and the <xsl:when> body
contains
* this non-available element.
*/
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
// Type-check the test expression
- if (_test.typeCheck(stable) instanceof BooleanType == false) {
+ if (_test.typeCheck(ccontext) instanceof BooleanType == false) {
_test = new CastExpr(_test, Type.Boolean);
}
// Type-check the contents (if necessary)
if (!_ignore) {
- typeCheckContents(stable);
+ typeCheckContents(ccontext);
}
return Type.Void;
1.7.8.1.2.3 +1 -2
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Whitespace.java
Index: Whitespace.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Whitespace.java,v
retrieving revision 1.7.8.1.2.2
retrieving revision 1.7.8.1.2.3
diff -u -r1.7.8.1.2.2 -r1.7.8.1.2.3
--- Whitespace.java 13 Jan 2003 22:02:53 -0000 1.7.8.1.2.2
+++ Whitespace.java 15 Jan 2003 14:43:05 -0000 1.7.8.1.2.3
@@ -176,7 +176,6 @@
return;
}
- final SymbolTable stable = parser.getSymbolTable();
StringTokenizer list = new StringTokenizer(_elementList);
StringBuffer elements = new StringBuffer(Constants.EMPTYSTRING);
@@ -565,7 +564,7 @@
/**
* Type-check contents/attributes - nothing to do...
*/
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
return Type.Void; // We don't return anything.
}
1.10.8.1.2.2 +3 -3
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/WithParam.java
Index: WithParam.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/WithParam.java,v
retrieving revision 1.10.8.1.2.1
retrieving revision 1.10.8.1.2.2
diff -u -r1.10.8.1.2.1 -r1.10.8.1.2.2
--- WithParam.java 13 Jan 2003 22:02:53 -0000 1.10.8.1.2.1
+++ WithParam.java 15 Jan 2003 14:43:05 -0000 1.10.8.1.2.2
@@ -102,15 +102,15 @@
* Type-check either the select attribute or the element body, depending
* on which is in use.
*/
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
if (_select != null) {
- final Type tselect = _select.typeCheck(stable);
+ final Type tselect = _select.typeCheck(ccontext);
if (tselect instanceof ReferenceType == false) {
_select = new CastExpr(_select, Type.Reference);
}
}
else {
- typeCheckContents(stable);
+ typeCheckContents(ccontext);
}
return Type.Void;
}
1.42.2.1.2.4 +3 -5
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/XSLTC.java
Index: XSLTC.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/XSLTC.java,v
retrieving revision 1.42.2.1.2.3
retrieving revision 1.42.2.1.2.4
diff -u -r1.42.2.1.2.3 -r1.42.2.1.2.4
--- XSLTC.java 13 Jan 2003 22:02:53 -0000 1.42.2.1.2.3
+++ XSLTC.java 15 Jan 2003 14:43:05 -0000 1.42.2.1.2.4
@@ -655,11 +655,9 @@
* Registers an element and gives it a type so that it can be mapped to
* DOM element types at run-time.
*/
- public int registerNamespace(QName name) {
- final SymbolTable stable = _parser.getSymbolTable();
- final String uri = stable.lookupNamespace(name.toString());
- final int code = registerNamespace(uri);
- return code;
+ public int registerNamespace(QName name, StaticContext scontext) {
+ final String uri = scontext.getNamespace(name.toString());
+ return registerNamespace(uri);
}
/**
1.18.2.1.2.3 +6 -8
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/XslAttribute.java
Index: XslAttribute.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/XslAttribute.java,v
retrieving revision 1.18.2.1.2.2
retrieving revision 1.18.2.1.2.3
diff -u -r1.18.2.1.2.2 -r1.18.2.1.2.3
--- XslAttribute.java 13 Jan 2003 22:02:53 -0000 1.18.2.1.2.2
+++ XslAttribute.java 15 Jan 2003 14:43:05 -0000 1.18.2.1.2.3
@@ -91,7 +91,6 @@
public void parse(CompilerContext ccontext) {
boolean generated = false;
final Parser parser = ccontext.getParser();
- final SymbolTable stable = parser.getSymbolTable();
String name = getAttribute("name");
String namespace = getAttribute("namespace");
@@ -148,7 +147,7 @@
_prefix = prefix;
}
else {
- _prefix = stable.generateNamespacePrefix();
+ _prefix = ccontext.generateNamespacePrefix();
generated = true;
}
}
@@ -165,8 +164,7 @@
*/
if ((parent instanceof LiteralElement) && (!generated)) {
((LiteralElement)parent).registerNamespace(_prefix,
- namespace,
- stable, false);
+ namespace, false);
}
}
@@ -183,13 +181,13 @@
parseContents(ccontext);
}
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
if (!_ignore) {
- _name.typeCheck(stable);
+ _name.typeCheck(ccontext);
if (_namespace != null) {
- _namespace.typeCheck(stable);
+ _namespace.typeCheck(ccontext);
}
- typeCheckContents(stable);
+ typeCheckContents(ccontext);
}
return Type.Void;
}
1.17.2.1.2.4 +5 -6
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/XslElement.java
Index: XslElement.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/XslElement.java,v
retrieving revision 1.17.2.1.2.3
retrieving revision 1.17.2.1.2.4
diff -u -r1.17.2.1.2.3 -r1.17.2.1.2.4
--- XslElement.java 13 Jan 2003 22:02:53 -0000 1.17.2.1.2.3
+++ XslElement.java 15 Jan 2003 14:43:05 -0000 1.17.2.1.2.4
@@ -123,7 +123,6 @@
public void parse(CompilerContext ccontext) {
final Parser parser = ccontext.getParser();
- final SymbolTable stable = parser.getSymbolTable();
// Handle the 'name' attribute
String name = getAttribute("name");
@@ -177,7 +176,7 @@
if (isLiteral(namespace)) {
prefix = lookupPrefix(namespace);
if (prefix == null) {
- prefix = stable.generateNamespacePrefix();
+ prefix = ccontext.generateNamespacePrefix();
}
}
@@ -210,14 +209,14 @@
/**
* Run type check on element name & contents
*/
- public Type typeCheck(SymbolTable stable) throws TypeCheckError {
+ public Type typeCheck(CompilerContext ccontext) throws TypeCheckError {
if (!_ignore) {
- _name.typeCheck(stable);
+ _name.typeCheck(ccontext);
if (_namespace != null) {
- _namespace.typeCheck(stable);
+ _namespace.typeCheck(ccontext);
}
}
- typeCheckContents(stable);
+ typeCheckContents(ccontext);
return Type.Void;
}
1.39.2.1.2.3 +10 -10
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/xpath.cup
Index: xpath.cup
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/xpath.cup,v
retrieving revision 1.39.2.1.2.2
retrieving revision 1.39.2.1.2.3
diff -u -r1.39.2.1.2.2 -r1.39.2.1.2.3
--- xpath.cup 10 Jan 2003 16:50:43 -0000 1.39.2.1.2.2
+++ xpath.cup 15 Jan 2003 14:43:05 -0000 1.39.2.1.2.3
@@ -103,14 +103,14 @@
private int _lineNumber = 0;
/**
- * Reference to the symbol table.
+ * Reference to the static context.
*/
- public SymbolTable _symbolTable;
+ public StaticContext _scontext;
- public XPathParser(Parser parser) {
- _parser = parser;
- _xsltc = parser.getXSLTC();
- _symbolTable = parser.getSymbolTable();
+ public XPathParser(CompilerContext ccontext, StaticContext scontext) {
+ _parser = ccontext.getParser();
+ _xsltc = ccontext.getXSLTC();
+ _scontext = scontext;
}
public int getLineNumber() {
@@ -143,7 +143,7 @@
if (axis == Axis.NAMESPACE) {
return (name.toString().equals("*")) ? -1
- : _xsltc.registerNamespace(name);
+ : _xsltc.registerNamespace(name, _scontext);
}
if (name.getNamespace() == null) {
@@ -199,7 +199,7 @@
if (result != null)
return(result);
else
- return(_symbolTable.lookupName(name));
+ return _scontext.getVariable(name);
}
public final void addError(ErrorMsg error) {
@@ -769,7 +769,7 @@
if (index > 0) {
final String prefix = string.substring(0, index);
- namespace = parser._symbolTable.lookupNamespace(prefix);
+ namespace = parser._scontext.getNamespace(prefix);
}
RESULT = (namespace == null) ? new LiteralExpr(string)
: new LiteralExpr(string, namespace);
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]