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 Object
applyWithFocus(Procedure proc, Object values)
Call a procedure with each item in a sequence as the context item.Object
applyWithFocus(Procedure proc, Object item, int position, int size)
Call a procedure with a given focus (context).void
applyWithFocus(Procedure proc, Object item, int position, int size, Consumer out)
Call a procedure with a given focus (context).void
applyWithFocus(Procedure proc, Object values, Consumer out)
Call a procedure with each item in a sequence as the context item.void
applyWithFocus$X(Procedure proc, Object values, CallContext ctx)
Call a procedure with each item in a sequence as the context item.static char
asChar(Object x)
static Numeric
asNumber(Object arg)
void
define(String name, Object value)
Enter a value into the current environment.protected void
define_method(String name, String cname, String mname)
void
eval_with_focus$X(String expr, Object item, int position, int size, CallContext ctx)
Evaluate an expression with a given focus (context).void
eval_with_focus$X(String expr, Object values, CallContext ctx)
Evaluate an expression with a given focus (context).Procedure
evalToFocusProc(Reader in, SourceMessages messages)
Parse an XQuery expression from aReader
that is the body of a procedure.Procedure
evalToFocusProc(String expr)
Parse an XQuery expression that is the body of a procedure.void
evalWithFocus(Reader in, SourceMessages messages, Object item, int position, int size, Consumer out)
Evaluate an expression with a given focus (context).void
evalWithFocus(Reader in, SourceMessages messages, Object values, Consumer out)
Evaluate an expression with each item in a sequence as the context item.Object
evalWithFocus(String expr, Object values)
Evaluate an expression with each item in a sequence as the context item.Object
evalWithFocus(String expr, Object item, int position, int size)
Evaluate an expression with a given focus (context).String
formatType(Type type)
Compilation
getCompilation(Lexer lexer, SourceMessages messages, NameLookup lexical)
static Object
getExternal(Symbol name, Object type)
static XQuery
getInstance()
Lexer
getLexer(gnu.kawa.io.InPort inp, SourceMessages messages)
String
getName()
int
getNamespaceOf(Declaration decl)
Return the namespace (e.g value or function) of a Declaration.Consumer
getOutputConsumer(Writer out)
String
getPrimaryPrompt()
String
getSecondaryPrompt()
Type
getStandardType(String name)
Symbol
getSymbol(String name)
Type
getTypeFor(Class clas)
Type
getTypeFor(String name)
boolean
hasNamespace(Declaration decl, int namespace)
True if a Declaration is in the specified namespace.boolean
hasSeparateFunctionNamespace()
True if functions are in a separate name space from variable.boolean
isTrue(Object value)
Test if a value is considered "true" in this language.static String
makeClassName(String source)
static String
mangle(String name)
static int
namespaceForFunctions(int argCount)
boolean
parse(Compilation tr, int options)
static void
registerEnvironment()
The compiler insert calls to this method for applications and applets.void
resolve(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:Language
True if functions are in a separate name space from variable. Is true for e.g. Common Lisp, Emacs Lisp; false for Scheme.- Overrides:
hasSeparateFunctionNamespace
in classLanguage
-
asChar
public static char asChar(Object x)
-
isTrue
public boolean isTrue(Object value)
Description copied from class:Language
Test 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:
parse
in classLanguage
- Throws:
IOException
SyntaxException
-
resolve
public void resolve(Compilation comp)
Description copied from class:Language
Perform 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:Language
Return 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:
getNamespaceOf
in classLanguage
-
hasNamespace
public boolean hasNamespace(Declaration decl, int namespace)
Description copied from class:Language
True if a Declaration is in the specified namespace.- Overrides:
hasNamespace
in classLanguage
namespace
- normally a bitmask as returned by getNamespaceOf.
-
define
public void define(String name, Object value)
Description copied from class:Language
Enter 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-operandProcedure
as returned byevalToFocusProc
item
- the context item, passed as the first argument toproc
position
- 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-operandProcedure
as returned byevalToFocusProc
item
- the context item, passed as the first argument toproc
position
- 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-operandProcedure
as returned byevalToFocusProc
values
- a sequence. Theproc
is 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-operandProcedure
as returned byevalToFocusProc
values
- a sequence. Theproc
is 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-operandProcedure
as returned byevalToFocusProc
values
- a sequence. Theproc
is 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$X
in 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 byevalWithFocus
methods.- 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 aReader
that is the body of a procedure. Helper method used byevalWithFocus
methods.- 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:
getOutputConsumer
in classLanguage
-
getTypeFor
public Type getTypeFor(String name)
- Overrides:
getTypeFor
in classLanguage
-
formatType
public String formatType(Type type)
- Overrides:
formatType
in classLanguage
-
getTypeFor
public Type getTypeFor(Class clas)
- Overrides:
getTypeFor
in classLanguage
-
getPrimaryPrompt
public String getPrimaryPrompt()
- Overrides:
getPrimaryPrompt
in classLanguage
-
getSecondaryPrompt
public String getSecondaryPrompt()
- Overrides:
getSecondaryPrompt
in classLanguage
-
-