public DefaultFunctionCall (XQueryStaticContext ctx, string name, int minArgs, int maxArgs, SequenceType type, ExprSequence args)
			: base (GetName (name), args)
		{
			this.type = type;
			this.minArgs = minArgs;
			this.maxArgs = maxArgs;
		}
 public DefaultFunctionCall(XQueryStaticContext ctx, string name, int minArgs, int maxArgs, SequenceType type, ExprSequence args)
     : base(GetName(name), args)
 {
     this.type    = type;
     this.minArgs = minArgs;
     this.maxArgs = maxArgs;
 }
示例#3
0
		internal XQueryContextManager (XQueryStaticContext ctx, XPathItem input, XmlWriter writer, XmlResolver resolver, XmlArgumentList args)
		{
			this.input = input;
			this.staticContext = ctx;
			this.args = args;
			currentWriter = writer;
			this.extDocResolver = resolver;

			namespaceManager = new XmlNamespaceManager (ctx.NameTable);
			foreach (DictionaryEntry de in ctx.NSResolver.GetNamespacesInScope (XmlNamespaceScope.ExcludeXml))
				namespaceManager.AddNamespace (de.Key.ToString (), de.Value.ToString ());
			namespaceManager.PushScope ();

			currentContext = new XQueryContext (this, null, new Hashtable ());
			if (input != null) {
				currentSequence = new SingleItemIterator (input, currentContext);
				currentSequence.MoveNext ();
			}
			currentContext = new XQueryContext (this, currentSequence, new Hashtable ());
		}
示例#4
0
        internal XQueryContextManager(XQueryStaticContext ctx, XPathItem input, XmlWriter writer, XmlResolver resolver, XmlArgumentList args)
        {
            this.input          = input;
            this.staticContext  = ctx;
            this.args           = args;
            currentWriter       = writer;
            this.extDocResolver = resolver;

            namespaceManager = new XmlNamespaceManager(ctx.NameTable);
            foreach (DictionaryEntry de in ctx.NSResolver.GetNamespacesInScope(XmlNamespaceScope.ExcludeXml))
            {
                namespaceManager.AddNamespace(de.Key.ToString(), de.Value.ToString());
            }
            namespaceManager.PushScope();

            currentContext = new XQueryContext(this, null, new Hashtable());
            if (input != null)
            {
                currentSequence = new SingleItemIterator(input, currentContext);
                currentSequence.MoveNext();
            }
            currentContext = new XQueryContext(this, currentSequence, new Hashtable());
        }
 public FnNilledCall(XQueryStaticContext ctx, XPathItemExpression [] args)
     : base(ctx, "nilled", 1, 1, SequenceType.Create(XmlSchemaSimpleType.XsBoolean, Occurence.One), args)
 {
 }
		public FnTraceCall (XQueryStaticContext ctx, XPathItemExpression [] args)
			: base (ctx, "trace", 2, 2, SequenceType.Create (XmlSchemaComplexType.AnyType, Occurence.ZeroOrMore), args)
		{
		}
 public FnStringCallToCodepointsCall(XQueryStaticContext ctx, XPathItemExpression [] args)
     : base(ctx, "string-to-codepoints", 1, 1, SequenceType.Create(XmlSchemaSimpleType.XsString, Occurence.Optional), args)
 {
 }
 public FnRoundHalfToEvenCall(XQueryStaticContext ctx, XPathItemExpression [] args)
     : base(ctx, "round-half-to-even", 1, 2, args [0].StaticType, args)
 {
 }
 public FnFloorCall(XQueryStaticContext ctx, XPathItemExpression [] args)
     : base(ctx, "floor", 1, 1, args [0].StaticType, args)
 {
 }
 public FnAbsCall(XQueryStaticContext ctx, XPathItemExpression [] args)
     : base(ctx, "abs", 1, 1, args [0].StaticType, args)
 {
 }
 public FnTraceCall(XQueryStaticContext ctx, XPathItemExpression [] args)
     : base(ctx, "trace", 2, 2, SequenceType.Create(XmlSchemaComplexType.AnyType, Occurence.ZeroOrMore), args)
 {
 }
		public FnCodepointsToStringCall (XQueryStaticContext ctx, XPathItemExpression [] args)
			: base (ctx, "codepoints-to-string", 1, 1, SequenceType.IntegerList, args)
		{
		}
		public FnRoundHalfToEvenCall (XQueryStaticContext ctx, XPathItemExpression [] args)
			: base (ctx, "round-half-to-even", 1, 2, args [0].StaticType, args)
		{
		}
		public FnRoundCall (XQueryStaticContext ctx, XPathItemExpression [] args)
			: base (ctx, "round", 1, 1, args [0].StaticType, args)
		{
		}
		public FnFloorCall (XQueryStaticContext ctx, XPathItemExpression [] args)
			: base (ctx, "floor", 1, 1, args [0].StaticType, args)
		{
		}
		public FnCeilingCall (XQueryStaticContext ctx, XPathItemExpression [] args)
			: base (ctx, "ceiling", 1, 1, args [0].StaticType, args)
		{
		}
		public FnAbsCall (XQueryStaticContext ctx, XPathItemExpression [] args)
			: base (ctx, "abs", 1, 1, args [0].StaticType, args)
		{
		}
		// FIXME: use IXmlNamespaceResolver.LookupPrefix() in ctx
		public AtomicConstructorCall (XQueryStaticContext ctx, SequenceType type, XPathItemExpression [] args)
			: base (ctx, type.SchemaType.QualifiedName.Name, 1, 1, type, args)
		{
		}
 public FnDocumentUriCall(XQueryStaticContext ctx, XPathItemExpression [] args)
     : base(ctx, "document-uri", 1, 1, SequenceType.Create(XmlSchemaSimpleType.XsAnyUri, Occurence.Optional), args)
 {
 }
 public FnErrorCall(XQueryStaticContext ctx, XPathItemExpression [] args)
 // FIXME: return type is actually none
     : base(ctx, "error", 0, 3, SequenceType.AnyType, args)
 {
 }
		public FnStringCallToCodepointsCall (XQueryStaticContext ctx, XPathItemExpression [] args)
			: base (ctx, "string-to-codepoints", 1, 1, SequenceType.Create (XmlSchemaSimpleType.XsString, Occurence.Optional), args)
		{
		}
 // FIXME: use IXmlNamespaceResolver.LookupPrefix() in ctx
 public AtomicConstructorCall(XQueryStaticContext ctx, SequenceType type, XPathItemExpression [] args)
     : base(ctx, type.SchemaType.QualifiedName.Name, 1, 1, type, args)
 {
 }
		public FnDocumentUriCall (XQueryStaticContext ctx, XPathItemExpression [] args)
			: base (ctx, "document-uri", 1, 1, SequenceType.Create (XmlSchemaSimpleType.XsAnyUri, Occurence.Optional), args)
		{
		}
 public FnCeilingCall(XQueryStaticContext ctx, XPathItemExpression [] args)
     : base(ctx, "ceiling", 1, 1, args [0].StaticType, args)
 {
 }
		public FnNodeNameCall (XQueryStaticContext ctx, ExprSequence args)
			: base (ctx, "node-name", 1, 1, SequenceType.Create (XmlSchemaSimpleType.XsQName, Occurence.Optional), args)
		{
		}
 public FnRoundCall(XQueryStaticContext ctx, XPathItemExpression [] args)
     : base(ctx, "round", 1, 1, args [0].StaticType, args)
 {
 }
 public FnNodeNameCall(XQueryStaticContext ctx, ExprSequence args)
     : base(ctx, "node-name", 1, 1, SequenceType.Create(XmlSchemaSimpleType.XsQName, Occurence.Optional), args)
 {
 }
 public FnCodepointsToStringCall(XQueryStaticContext ctx, XPathItemExpression [] args)
     : base(ctx, "codepoints-to-string", 1, 1, SequenceType.IntegerList, args)
 {
 }
示例#29
0
		public void Compile (TextReader input, Evidence evidence, object xqueryCommand)
		{
			staticContext = XQueryASTCompiler.Compile (Mono.Xml.XQuery.Parser.Parser.Parse (input), null, evidence, this);
			this.xqueryCommand = xqueryCommand;
			// FIXME: generate executable assembly, and load it with evidence.
		}
		public FnNilledCall (XQueryStaticContext ctx, XPathItemExpression [] args)
			: base (ctx, "nilled", 1, 1, SequenceType.Create (XmlSchemaSimpleType.XsBoolean, Occurence.One), args)
		{
		}
		public FnErrorCall (XQueryStaticContext ctx, XPathItemExpression [] args)
			// FIXME: return type is actually none
			: base (ctx, "error", 0, 3, SequenceType.AnyType, args)
		{
		}
示例#32
0
 public void Compile(TextReader input, Evidence evidence, object xqueryCommand)
 {
     staticContext      = XQueryASTCompiler.Compile(Mono.Xml.XQuery.Parser.Parser.Parse(input), null, evidence, this);
     this.xqueryCommand = xqueryCommand;
     // FIXME: generate executable assembly, and load it with evidence.
 }
示例#33
0
 public static XQueryStaticContext Optimize(XQueryStaticContext ctx)
 {
     // FIXME: do type promotion and expression reduction
     return(ctx);
 }
示例#34
0
		public static XQueryStaticContext Optimize (XQueryStaticContext ctx)
		{
			// FIXME: do type promotion and expression reduction
			return ctx;
		}
示例#35
0
		internal ExprSingle Compile (XQueryASTCompiler compiler)
		{
			this.ctx = ctx;
			return CompileCore (compiler);
		}