diff options
Diffstat (limited to 'src/compiler/scala/tools/nsc/ast/parser/SymbolicXMLBuilder.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/ast/parser/SymbolicXMLBuilder.scala | 66 |
1 files changed, 39 insertions, 27 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/parser/SymbolicXMLBuilder.scala b/src/compiler/scala/tools/nsc/ast/parser/SymbolicXMLBuilder.scala index f0d1c536c4..81bb5db286 100644 --- a/src/compiler/scala/tools/nsc/ast/parser/SymbolicXMLBuilder.scala +++ b/src/compiler/scala/tools/nsc/ast/parser/SymbolicXMLBuilder.scala @@ -22,43 +22,55 @@ import scala.tools.util.StringOps.splitWhere * @author Burak Emir * @version 1.0 */ -abstract class SymbolicXMLBuilder(p: Parsers#Parser, preserveWS: Boolean) -{ +abstract class SymbolicXMLBuilder(p: Parsers#Parser, preserveWS: Boolean) { val global: Global import global._ - def freshName(prefix: String): Name var isPattern: Boolean = _ - def _Comment = global.newTypeName("Comment") - def _Elem = global.newTypeName("Elem") - def _EntityRef = global.newTypeName("EntityRef") - def _Group = global.newTypeName("Group") - def _MetaData = global.newTypeName("MetaData") - def _NamespaceBinding = global.newTypeName("NamespaceBinding") - def _NodeBuffer = global.newTypeName("NodeBuffer") - def _PrefixedAttribute = global.newTypeName("PrefixedAttribute") - def _ProcInstr = global.newTypeName("ProcInstr") - def _Text = global.newTypeName("Text") - def _Unparsed = global.newTypeName("Unparsed") - def _UnprefixedAttribute = global.newTypeName("UnprefixedAttribute") - - def __Elem = global.newTermName("Elem") - def __Text = global.newTermName("Text") - def _Null = global.newTermName("Null") - def _plus = global.newTermName("$amp$plus") - def _xml = global.newTermName("xml") - - final def _buf = global.newTermName("$buf") - final def _md = global.newTermName("$md") - final def _scope = global.newTermName("$scope") - final def _tmpscope = global.newTermName("$tmpscope") + trait XMLTypeNames extends LibraryTypeNames { + val _Comment: NameType = "Comment" + val _Elem: NameType = "Elem" + val _EntityRef: NameType = "EntityRef" + val _Group: NameType = "Group" + val _MetaData: NameType = "MetaData" + val _NamespaceBinding: NameType = "NamespaceBinding" + val _NodeBuffer: NameType = "NodeBuffer" + val _PrefixedAttribute: NameType = "PrefixedAttribute" + val _ProcInstr: NameType = "ProcInstr" + val _Text: NameType = "Text" + val _Unparsed: NameType = "Unparsed" + val _UnprefixedAttribute: NameType = "UnprefixedAttribute" + } + + trait XMLTermNames extends LibraryTermNames { + val _Null: NameType = "Null" + val __Elem: NameType = "Elem" + val __Text: NameType = "Text" + val _buf: NameType = "$buf" + val _md: NameType = "$md" + val _plus: NameType = "$amp$plus" + val _scope: NameType = "$scope" + val _tmpscope: NameType = "$tmpscope" + val _xml: NameType = "xml" + } + + private object xmltypes extends XMLTypeNames { + type NameType = TypeName + implicit def createNameType(name: String): TypeName = newTypeName(name) + } + private object xmlterms extends XMLTermNames { + type NameType = TermName + implicit def createNameType(name: String): TermName = newTermName(name) + } + import xmltypes._ + import xmlterms._ // convenience methods private def LL[A](x: A*): List[List[A]] = List(List(x:_*)) private def const(x: Any) = Literal(Constant(x)) private def wild = Ident(nme.WILDCARD) - private def wildStar = Ident(nme.WILDCARD_STAR) + private def wildStar = Ident(tpnme.WILDCARD_STAR) private def _scala(name: Name) = Select(Select(Ident(nme.ROOTPKG), nme.scala_), name) private def _scala_xml(name: Name) = Select(_scala(_xml), name) |