Package gnu.xquery.lang
Class XQuery
- java.lang.Object
-
- gnu.expr.Language
-
- gnu.xquery.lang.XQuery
-
-
Field Summary
-
Fields inherited from class gnu.expr.Language
current, environ, FUNCTION_NAMESPACE, global, NAMESPACE_PREFIX_NAMESPACE, PARSE_CURRENT_NAMES, PARSE_EMIT_MAIN, PARSE_EXPLICIT, PARSE_FOR_APPLET, PARSE_FOR_EVAL, PARSE_FOR_LINT, PARSE_FOR_SERVLET, PARSE_IMMEDIATE, PARSE_INTERACTIVE_MODULE, PARSE_ONE_LINE, PARSE_PROLOG, requirePedantic, userEnv, VALUE_NAMESPACE
-
-
Constructor Summary
Constructors Constructor Description XQuery()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description ObjectapplyWithFocus(Procedure proc, Object values)Call a procedure with each item in a sequence as the context item.ObjectapplyWithFocus(Procedure proc, Object item, int position, int size)Call a procedure with a given focus (context).voidapplyWithFocus(Procedure proc, Object item, int position, int size, Consumer out)Call a procedure with a given focus (context).voidapplyWithFocus(Procedure proc, Object values, Consumer out)Call a procedure with each item in a sequence as the context item.voidapplyWithFocus$X(Procedure proc, Object values, CallContext ctx)Call a procedure with each item in a sequence as the context item.static charasChar(Object x)static NumericasNumber(Object arg)voiddefine(String name, Object value)Enter a value into the current environment.protected voiddefine_method(String name, String cname, String mname)voideval_with_focus$X(String expr, Object item, int position, int size, CallContext ctx)Evaluate an expression with a given focus (context).voideval_with_focus$X(String expr, Object values, CallContext ctx)Evaluate an expression with a given focus (context).ProcedureevalToFocusProc(Reader in, SourceMessages messages)Parse an XQuery expression from aReaderthat is the body of a procedure.ProcedureevalToFocusProc(String expr)Parse an XQuery expression that is the body of a procedure.voidevalWithFocus(Reader in, SourceMessages messages, Object item, int position, int size, Consumer out)Evaluate an expression with a given focus (context).voidevalWithFocus(Reader in, SourceMessages messages, Object values, Consumer out)Evaluate an expression with each item in a sequence as the context item.ObjectevalWithFocus(String expr, Object values)Evaluate an expression with each item in a sequence as the context item.ObjectevalWithFocus(String expr, Object item, int position, int size)Evaluate an expression with a given focus (context).StringformatType(Type type)CompilationgetCompilation(Lexer lexer, SourceMessages messages, NameLookup lexical)static ObjectgetExternal(Symbol name, Object type)static XQuerygetInstance()LexergetLexer(gnu.kawa.io.InPort inp, SourceMessages messages)StringgetName()intgetNamespaceOf(Declaration decl)Return the namespace (e.g value or function) of a Declaration.ConsumergetOutputConsumer(Writer out)StringgetPrimaryPrompt()StringgetSecondaryPrompt()TypegetStandardType(String name)SymbolgetSymbol(String name)TypegetTypeFor(Class clas)TypegetTypeFor(String name)booleanhasNamespace(Declaration decl, int namespace)True if a Declaration is in the specified namespace.booleanhasSeparateFunctionNamespace()True if functions are in a separate name space from variable.booleanisTrue(Object value)Test if a value is considered "true" in this language.static StringmakeClassName(String source)static Stringmangle(String name)static intnamespaceForFunctions(int argCount)booleanparse(Compilation tr, int options)static voidregisterEnvironment()The compiler insert calls to this method for applications and applets.voidresolve(Compilation comp)Perform any need post-processing after we've read all the modules to be compiled.-
Methods inherited from class gnu.expr.Language
asType, booleanObject, booleanValue, coerceFromObject, coerceToObject, declFromField, decodeType, defAliasStFld, defineFunction, defineFunction, defProcStFld, defProcStFld, defProcStFld, defProcStFldAs, detect, detect, detect, encodeType, eval, eval, eval, eval, eval, eval, eval, eval, eval, getCompilation, getCompilation, getCompilationClass, getDefaultLanguage, getEnvironment, getEnvPropertyFor, getEnvPropertyFor, getExtensions, getFormat, getInstance, getInstance, getInstanceFromFilenameExtension, getLangEnvironment, getLangTypeFor, getLanguages, getNamedType, getNewEnvironment, getTypeFor, getTypeFor, getTypeFor, isValidJavaName, loadClass, lookup, lookupBuiltin, mangleName, noValue, parse, parse, parse, parse, registerLanguage, restoreCurrent, runAsApplication, setCurrentLanguage, setDefaults, setSaveCurrent, unionType
-
-
-
-
Field Detail
-
XQUERY_FUNCTION_NAMESPACE
public static final String XQUERY_FUNCTION_NAMESPACE
- See Also:
- Constant Field Values
-
KAWA_FUNCTION_NAMESPACE
public static final String KAWA_FUNCTION_NAMESPACE
- See Also:
- Constant Field Values
-
QEXO_FUNCTION_NAMESPACE
public static final String QEXO_FUNCTION_NAMESPACE
- See Also:
- Constant Field Values
-
LOCAL_NAMESPACE
public static final String LOCAL_NAMESPACE
- See Also:
- Constant Field Values
-
SCHEMA_NAMESPACE
public static final String SCHEMA_NAMESPACE
- See Also:
- Constant Field Values
-
SCHEMA_INSTANCE_NAMESPACE
public static final String SCHEMA_INSTANCE_NAMESPACE
- See Also:
- Constant Field Values
-
XHTML_NAMESPACE
public static final String XHTML_NAMESPACE
- See Also:
- Constant Field Values
-
xqueryFunctionNamespace
public static final Namespace xqueryFunctionNamespace
-
kawaFunctionNamespace
public static final Namespace kawaFunctionNamespace
-
qexoFunctionNamespace
public static final Namespace qexoFunctionNamespace
-
defaultFunctionNamespacePath
public static final Namespace[] defaultFunctionNamespacePath
-
DEFAULT_ELEMENT_PREFIX
public static final String DEFAULT_ELEMENT_PREFIX
Pseudo-namespace "prefix" for the default element namespace.
-
DEFAULT_FUNCTION_PREFIX
public static final String DEFAULT_FUNCTION_PREFIX
Pseudo-namespace "prefix" for the default function namespace.- See Also:
- Constant Field Values
-
PARSE_WITH_FOCUS
public static final int PARSE_WITH_FOCUS
Special parser flag used byevalToFocusProc.- See Also:
- Constant Field Values
-
VARIADIC_FUNCTION_NAMESPACE
public static final int VARIADIC_FUNCTION_NAMESPACE
- See Also:
- Constant Field Values
-
extensionsEnvEnv
public static Environment extensionsEnvEnv
Environment of pre-defined non-standard Qexo/Kawa functions.
-
xqEnvironment
public static final Environment xqEnvironment
-
instance
public static final XQuery instance
-
falseExp
public static QuoteExp falseExp
-
trueExp
public static QuoteExp trueExp
-
falseFunction
public static final ConstantFunction0 falseFunction
-
trueFunction
public static final ConstantFunction0 trueFunction
-
-
Method Detail
-
hasSeparateFunctionNamespace
public boolean hasSeparateFunctionNamespace()
Description copied from class:LanguageTrue if functions are in a separate name space from variable. Is true for e.g. Common Lisp, Emacs Lisp; false for Scheme.- Overrides:
hasSeparateFunctionNamespacein classLanguage
-
asChar
public static char asChar(Object x)
-
isTrue
public boolean isTrue(Object value)
Description copied from class:LanguageTest if a value is considered "true" in this language. Throws an exception if value can't be used in a boolean context. Use booleanValue to catch that exception.
-
getLexer
public Lexer getLexer(gnu.kawa.io.InPort inp, SourceMessages messages)
-
getCompilation
public Compilation getCompilation(Lexer lexer, SourceMessages messages, NameLookup lexical)
-
parse
public boolean parse(Compilation tr, int options) throws IOException, SyntaxException
- Specified by:
parsein classLanguage- Throws:
IOExceptionSyntaxException
-
resolve
public void resolve(Compilation comp)
Description copied from class:LanguagePerform any need post-processing after we've read all the modules to be compiled. Using a separate pass allows compiling mutually recursive modules.
-
namespaceForFunctions
public static int namespaceForFunctions(int argCount)
-
getNamespaceOf
public int getNamespaceOf(Declaration decl)
Description copied from class:LanguageReturn the namespace (e.g value or function) of a Declaration. Return a bitmask of all the namespaces "covered" by the Declaration. Note this isn't a namespace in the XML sense; if a Declaration has a specific namespace URI, then that is part of its symbol. This namespace bitmap is a separate dimension, for the use of languages that have separate namespaces for different kinds of declarations, such as variables and functions.- Overrides:
getNamespaceOfin classLanguage
-
hasNamespace
public boolean hasNamespace(Declaration decl, int namespace)
Description copied from class:LanguageTrue if a Declaration is in the specified namespace.- Overrides:
hasNamespacein classLanguagenamespace- normally a bitmask as returned by getNamespaceOf.
-
define
public void define(String name, Object value)
Description copied from class:LanguageEnter a value into the current environment.
-
applyWithFocus
public void applyWithFocus(Procedure proc, Object item, int position, int size, Consumer out) throws Throwable
Call a procedure with a given focus (context).- Parameters:
proc- a 3-operandProcedureas returned byevalToFocusProcitem- the context item, passed as the first argument toprocposition- the context position, passed as the second argumentsize- the context size, passed as the second argumentout- where to send the result ofproc- Throws:
Throwable
-
applyWithFocus
public Object applyWithFocus(Procedure proc, Object item, int position, int size) throws Throwable
Call a procedure with a given focus (context).- Parameters:
proc- a 3-operandProcedureas returned byevalToFocusProcitem- the context item, passed as the first argument toprocposition- the context position, passed as the second argumentsize- the context size, passed as the second argument- Returns:
- the result of applying
proc - Throws:
Throwable
-
applyWithFocus
public void applyWithFocus(Procedure proc, Object values, Consumer out) throws Throwable
Call a procedure with each item in a sequence as the context item.- Parameters:
proc- a 3-operandProcedureas returned byevalToFocusProcvalues- a sequence. Theprocis called once for each item, with the item as the first argument, a 1-based index as the second argument, and the sequence size as the third argument.out- where to send the result ofproc- Throws:
Throwable
-
applyWithFocus
public Object applyWithFocus(Procedure proc, Object values) throws Throwable
Call a procedure with each item in a sequence as the context item.- Parameters:
proc- a 3-operandProcedureas returned byevalToFocusProcvalues- a sequence. Theprocis called once for each item, with the item as the first argument, a 1-based index as the second argument, and the sequence size as the third argument.- Returns:
- the result of applying
proc - Throws:
Throwable
-
applyWithFocus$X
public void applyWithFocus$X(Procedure proc, Object values, CallContext ctx) throws Throwable
Call a procedure with each item in a sequence as the context item.- Parameters:
proc- a 3-operandProcedureas returned byevalToFocusProcvalues- a sequence. Theprocis called once for each item, with the item as the first argument, a 1-based index as the second argument, and the sequence size as the third argument.ctx- theCallContext. The$Xin the method name tells Kawa that this argument is implicit when invoked from XQuery.- Throws:
Throwable
-
evalToFocusProc
public Procedure evalToFocusProc(String expr) throws Throwable
Parse an XQuery expression that is the body of a procedure. Helper method used byevalWithFocusmethods.- Parameters:
expr- an XQuery expression (query) to evaluate- Returns:
- a 3-operand Procedure whose arguments become the context item, position, and size.
- Throws:
Throwable
-
evalToFocusProc
public Procedure evalToFocusProc(Reader in, SourceMessages messages) throws Throwable
Parse an XQuery expression from aReaderthat is the body of a procedure. Helper method used byevalWithFocusmethods.- Parameters:
in- where we read the expression frommessages- where to write syntax errors- Returns:
- a 3-operand Procedure whose arguments become the context item, position, and size.
- Throws:
Throwable
-
evalWithFocus
public void evalWithFocus(Reader in, SourceMessages messages, Object values, Consumer out) throws Throwable
Evaluate an expression with each item in a sequence as the context item.- Parameters:
in- where we read the expression frommessages- where to write syntax errorsvalues- becomes the context sequence while evaluatingexpr.out- where to send the result of the expression- Throws:
Throwable
-
evalWithFocus
public Object evalWithFocus(String expr, Object values) throws Throwable
Evaluate an expression with each item in a sequence as the context item.- Parameters:
expr- an XQuery expression (query) to evaluatevalues- becomes the context sequence while evaluating the expression- Returns:
- the result of evaluating the expression
- Throws:
Throwable
-
evalWithFocus
public Object evalWithFocus(String expr, Object item, int position, int size) throws Throwable
Evaluate an expression with a given focus (context).- Parameters:
expr- an XQuery expression (query) to evaluateitem- becomes the context item while evaluatingexpr.position- becomes the context positionsize- becomes the context size- Returns:
- the result of evaluating
expr - Throws:
Throwable
-
evalWithFocus
public void evalWithFocus(Reader in, SourceMessages messages, Object item, int position, int size, Consumer out) throws Throwable
Evaluate an expression with a given focus (context).- Parameters:
in- where we read the expression frommessages- where to write syntax errorsitem- becomes the context item while evaluating the expressionposition- becomes the context positionsize- becomes the context sizeout- where to send the result of the expression- Throws:
Throwable
-
eval_with_focus$X
public void eval_with_focus$X(String expr, Object values, CallContext ctx) throws Throwable
Evaluate an expression with a given focus (context). Similar toevalWithFocus(String, Object, Consumer). The "$X" in the method name tells the Kawa compiler that the CallContext argument is implicit, so it can be invoked from XQuery code thus:XQuery:eval-with-focus($xquery, "expr", $sequence)- Throws:
Throwable
-
eval_with_focus$X
public void eval_with_focus$X(String expr, Object item, int position, int size, CallContext ctx) throws Throwable
Evaluate an expression with a given focus (context). Similar toevalWithFocus(String, Object, int, int, Consumer). The "$X" in the method name tells the Kawa compiler that the CallContext argument is implicit, so it can be invoked from XQuery code thus:XQuery:eval-with-focus($xquery, "expr", $item, $pos, $size)- Throws:
Throwable
-
getInstance
public static XQuery getInstance()
-
registerEnvironment
public static void registerEnvironment()
The compiler insert calls to this method for applications and applets.
-
getOutputConsumer
public Consumer getOutputConsumer(Writer out)
- Overrides:
getOutputConsumerin classLanguage
-
getTypeFor
public Type getTypeFor(String name)
- Overrides:
getTypeForin classLanguage
-
formatType
public String formatType(Type type)
- Overrides:
formatTypein classLanguage
-
getTypeFor
public Type getTypeFor(Class clas)
- Overrides:
getTypeForin classLanguage
-
getPrimaryPrompt
public String getPrimaryPrompt()
- Overrides:
getPrimaryPromptin classLanguage
-
getSecondaryPrompt
public String getSecondaryPrompt()
- Overrides:
getSecondaryPromptin classLanguage
-
-