diff --git a/applications/test/Function1/case1/constant/function1Properties b/applications/test/Function1/case1/constant/function1Properties
index 671d72ebf2e1c1f7850a10421e07ca6e2f389aa6..e3ecec6b400ca9f61e27f67a5e154381bf546d1d 100644
--- a/applications/test/Function1/case1/constant/function1Properties
+++ b/applications/test/Function1/case1/constant/function1Properties
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  v2106                                 |
+|  \\    /   O peration     | Version:  v2112                                 |
 |   \\  /    A nd           | Website:  www.openfoam.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
@@ -138,4 +138,53 @@ cosine6
 }
 
 
+expr1
+{
+    type expression;
+
+    functions<scalar>
+    {
+        func1 constant 21;
+        func2 constant 15;
+        sin   constant -5;
+    }
+
+    functions<vector>
+    {
+        vfunc3 constant (1 2 3);
+        vfunc4 constant (3 2 1);
+    }
+
+    expression
+    #{
+        100 * fn:vfunc3() & fn:vfunc4() * (vector::z) .z()
+      * (fn:sin(arg()) + fn:func1(fn:func2()))
+    #};
+}
+
+
+expr2
+{
+    type expression;
+
+    functions<scalar>
+    {
+        func1 constant 21;
+        func2 constant 15;
+        sin   constant -5;
+    }
+
+    functions<vector>
+    {
+        vfunc3 constant (1 2 3);
+        vfunc4 constant (3 2 1);
+    }
+
+    expression
+    #{
+        (fn:vfunc3() & vector::z) * arg()
+    #};
+}
+
+
 // ************************************************************************* //
diff --git a/src/OpenFOAM/Make/files b/src/OpenFOAM/Make/files
index d1ee7b2c6221e8e7680d6f5609b2bbc3ad9472cc..517293dbee8888176ded9f133dd6a65473161468 100644
--- a/src/OpenFOAM/Make/files
+++ b/src/OpenFOAM/Make/files
@@ -168,6 +168,7 @@ $(expr)/traits/exprTraits.C
 
 $(expr)/exprDriver/exprDriver.C
 $(expr)/exprDriver/exprDriverFields.C
+$(expr)/exprDriver/exprDriverFunctions.C
 $(expr)/exprDriver/exprDriverIO.C
 
 fieldExpr = $(expr)/fields
diff --git a/src/OpenFOAM/expressions/exprDriver/exprDriver.C b/src/OpenFOAM/expressions/exprDriver/exprDriver.C
index d9b27f1f284bd10bf6e1b968a622bdd201dd4145..30d9e5776122fcfddc48fc48c58e349b6150d688 100644
--- a/src/OpenFOAM/expressions/exprDriver/exprDriver.C
+++ b/src/OpenFOAM/expressions/exprDriver/exprDriver.C
@@ -98,6 +98,30 @@ static string getEntryString
     return exprTools::expressionEntry::evaluate(*eptr);
 }
 #endif
+
+
+template<class Type>
+static void shallowCloneFunctions
+(
+    HashTable<refPtr<Function1<Type>>>& dest,
+    const HashTable<refPtr<Function1<Type>>>& rhs
+)
+{
+    // Add in shallow copy for other functions
+    forAllConstIters(rhs, iter)
+    {
+        const word& key = iter.key();
+
+        if (!dest.found(key))
+        {
+            refPtr<Function1<Type>> func;
+            func.cref(iter.val().shallowClone());
+
+            dest.emplace_set(key, std::move(func));
+        }
+    }
+}
+
 } // End namespace Foam
 
 
@@ -118,6 +142,23 @@ void Foam::expressions::exprDriver::resetTimeReference(const TimeState& ts)
 void Foam::expressions::exprDriver::resetDb(const objectRegistry* obrPtr)
 {
     obrPtr_ = obrPtr;
+
+    forAllIters(scalarFuncs_, iter)
+    {
+        auto& funcPtr = iter.val();
+        if (funcPtr && !funcPtr.is_const())
+        {
+            (*funcPtr).resetDb(obrPtr_);
+        }
+    }
+    forAllIters(vectorFuncs_, iter)
+    {
+        auto& funcPtr = iter.val();
+        if (funcPtr && !funcPtr.is_const())
+        {
+            (*funcPtr).resetDb(obrPtr_);
+        }
+    }
 }
 
 
@@ -139,6 +180,8 @@ Foam::expressions::exprDriver::exprDriver
     result_(),
     variableStrings_(),
     variables_(16),
+    scalarFuncs_(0),
+    vectorFuncs_(0),
     arg1Value_(0),
     timeStatePtr_(nullptr),
     obrPtr_(nullptr),
@@ -162,6 +205,8 @@ Foam::expressions::exprDriver::exprDriver
     result_(rhs.result_),
     variableStrings_(rhs.variableStrings_),
     variables_(rhs.variables_),
+    scalarFuncs_(0),
+    vectorFuncs_(0),
     arg1Value_(rhs.arg1Value_),
     timeStatePtr_(rhs.timeStatePtr_),
     obrPtr_(rhs.obrPtr_),
@@ -174,7 +219,16 @@ Foam::expressions::exprDriver::exprDriver
     prevIterIsOldTime_(rhs.prevIterIsOldTime_),
 
     searchCtrl_(rhs.searchCtrl_)
-{}
+{
+    // Partially like readDict()
+
+    // Create Function1s from dictionary content
+    resetFunctions(dict_);
+
+    // Add in shallow copy for other functions
+    shallowCloneFunctions(scalarFuncs_, rhs.scalarFuncs_);
+    shallowCloneFunctions(vectorFuncs_, rhs.vectorFuncs_);
+}
 
 
 Foam::expressions::exprDriver::exprDriver
@@ -246,9 +300,9 @@ bool Foam::expressions::exprDriver::readDict
     // Regular variables
     variableStrings_ = readVariableStrings(dict);
 
-    // Other tables?
-    // readTable("timelines", dict, lines_);
-    // readTable("lookuptables", dict, lookup_);
+    // Create Function1s from dictionary content
+    resetFunctions(dict);
+
     // readTable("lookuptables2D", dict, lookup2D_);
 
     return true;
diff --git a/src/OpenFOAM/expressions/exprDriver/exprDriver.H b/src/OpenFOAM/expressions/exprDriver/exprDriver.H
index 2aed2664aa2225dc69110eec84de7c5ecea4fb12..d7f0946df2ed6c8c25c02cc2d49cea07e9791b32 100644
--- a/src/OpenFOAM/expressions/exprDriver/exprDriver.H
+++ b/src/OpenFOAM/expressions/exprDriver/exprDriver.H
@@ -36,6 +36,8 @@ Description
     \table
         Property     | Description                          | Required | Default
         variables    | List of variables for expressions    | no  | ()
+        lookup\<scalar\> | Dictionary of scalar Function1     | no  | {}
+        lookup\<vector\> | Dictionary of vector Function1     | no  | {}
         allowShadowing | Allow variables to shadow field names | no  | false
     \endtable
 
@@ -47,10 +49,15 @@ Description
         debugParser  | Add debug for parser                 | no  | false
     \endtable
 
+    The \c lookup<scalar> and \c lookup<vector> are dictionaries
+    of Function1 definitions that can either be used to establish
+    a time-varying quantity, to remap a field of scalar values, or both.
+
 SourceFiles
     exprDriverI.H
     exprDriver.C
     exprDriverFields.C
+    exprDriverFunctions.C
     exprDriverIO.C
     exprDriverTemplates.C
 
@@ -65,6 +72,9 @@ SourceFiles
 #include "pointField.H"
 #include "primitiveFields.H"
 #include "objectRegistry.H"
+#include "HashTable.H"
+#include "HashSet.H"
+#include "Function1.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -105,6 +115,18 @@ private:
         //- Get search/caching controls from dictionary entries
         static int getSearchControls(const dictionary& dict);
 
+        //- Read/reset Function1 entries
+        void resetFunctions(const dictionary& dict);
+
+        //- Helper for lookup of Function1 in table
+        template<class Type>
+        static const Function1<Type>* getFunction1Ptr
+        (
+            const word& name,
+            const HashTable<refPtr<Function1<Type>>>& tbl,
+            wordList* listFailure = nullptr
+        );
+
 
 protected:
 
@@ -124,6 +146,14 @@ protected:
         //- The variables table
         HashTable<exprResult> variables_;
 
+        //- Function1 mappings/timelines (scalar),
+        //- evaluated at the simulation time or with arbitrary scalars
+        HashTable<refPtr<Function1<scalar>>> scalarFuncs_;
+
+        //- Function1 mappings/timelines (vector),
+        //- evaluated at the simulation time or with arbitrary scalars
+        HashTable<refPtr<Function1<vector>>> vectorFuncs_;
+
         //- Special-purpose scalar reference argument
         scalar arg1Value_;
 
@@ -173,24 +203,8 @@ protected:
         static tmp<GeoField>
         cfindFieldObject(const objectRegistry& obr, const word& fldName);
 
-        //- Read an interpolation table
-        template<typename TableType>
-        static bool readTable
-        (
-            const word& name,
-            const dictionary& dict,
-            HashTable<TableType>& tbl,
-            bool clear=true
-        );
-
-        //- Write an interpolation table
-        template<class TableType>
-        static void writeTable
-        (
-            Ostream& os,
-            const word& name,
-            const HashTable<TableType>& tbl
-        );
+        //- Write scalar/vector Function1 entries in dictionary format
+        void writeFunctions(Ostream& os) const;
 
 
     // Variables
@@ -444,6 +458,27 @@ public:
         );
 
 
+    // Scalar mappings (timelines / lookups)
+
+        //- Named mapping with given type exists
+        template<class Type>
+        bool isFunction(const word& name) const;
+
+        //- Evaluate named mapping for the given time/value.
+        //- Zero for undefined/unknown
+        template<class Type>
+        Type getFunctionValue(const word& name, const scalar x) const;
+
+        //- Fill result with values remapped according to the named Function1
+        template<class Type>
+        void fillFunctionValues
+        (
+            Field<Type>& result,
+            const word& name,
+            const scalarField& input
+        ) const;
+
+
     // Fields
 
         //- Test existence of a local variable
diff --git a/src/OpenFOAM/expressions/exprDriver/exprDriverFunctions.C b/src/OpenFOAM/expressions/exprDriver/exprDriverFunctions.C
new file mode 100644
index 0000000000000000000000000000000000000000..95f90b81ea20cf55164b3dbe71ec97b454092bbf
--- /dev/null
+++ b/src/OpenFOAM/expressions/exprDriver/exprDriverFunctions.C
@@ -0,0 +1,231 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | www.openfoam.com
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+    Copyright (C) 2021 OpenCFD Ltd.
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "exprDriver.H"
+
+// * * * * * * * * * * * * * * * Local Functions * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+// Check for acceptable Function1 keywords in the given dictionary,
+// with special handling to avoid accidental inclusion of coeffs
+// dictionaries etc
+static wordHashSet getAcceptableFunctionKeys
+(
+    const dictionary* dictPtr,
+    const bool acceptPrimitiveEntry,
+    const bool report = false
+)
+{
+    wordHashSet acceptKeys(0);
+
+    if (!dictPtr)
+    {
+        return acceptKeys;
+    }
+
+    const dictionary& dict = *dictPtr;
+
+    acceptKeys.resize(2*dict.size());
+    wordHashSet rejectKeys(2*dict.size());
+
+    for (const entry& dEntry : dict)
+    {
+        const keyType& kw = dEntry.keyword();
+
+        bool ok = true;
+
+        if (kw.isPattern())
+        {
+            ok = false;
+        }
+        else if (dEntry.isDict())
+        {
+            // Dictionary entry - require "type", which should eliminate
+            // any *Coeffs dictionaries
+
+            ok = dEntry.dict().found("type", keyType::LITERAL);
+        }
+        else
+        {
+            // Primitive entry. Trust that it is okay?
+            ok = acceptPrimitiveEntry;
+        }
+
+        if (ok)
+        {
+            acceptKeys.insert(kw);
+        }
+        else
+        {
+            rejectKeys.insert(kw);
+        }
+    }
+
+    if (report && rejectKeys.size())
+    {
+        InfoInFunction
+            << "Dropped invalid/redundant entries: "
+            << flatOutput(rejectKeys.sortedToc()) << nl;
+    }
+
+    return acceptKeys;
+}
+
+
+// Read and reset Function1 for given dictionary.
+// Uses getAcceptableFunctionKeys
+template<class Type>
+static void resetFuncsImpl
+(
+    const word& subDictName,
+    const dictionary& topDict,
+    HashTable<refPtr<Function1<Type>>>& tbl,
+    const objectRegistry* obrPtr
+)
+{
+    tbl.clear();
+
+    const dictionary* dictPtr =
+        topDict.findDict(subDictName, keyType::LITERAL);
+
+    if (!dictPtr)
+    {
+        return;
+    }
+
+    wordHashSet acceptKeys
+    (
+        getAcceptableFunctionKeys
+        (
+            dictPtr,
+            true  // Accept primitive entries, hope for the best
+        )
+    );
+
+    const dictionary& dict = *dictPtr;
+
+    for (const word& entryName : acceptKeys)
+    {
+        // From autoPtr -> refPtr
+        refPtr<Function1<Type>> func
+        (
+            Function1<Type>::New(entryName, dict, obrPtr)
+        );
+
+        if (func)
+        {
+            tbl.insert(entryName, std::move(func));
+        }
+    }
+}
+
+
+// Write out entries, if they originated from dictionary
+template<class Type>
+static void writeFuncsImpl
+(
+    Ostream& os,
+    const word& subDictName,
+    const dictionary& topDict,
+    const HashTable<refPtr<Function1<Type>>>& tbl
+)
+{
+    const dictionary* dictPtr =
+        topDict.findDict(subDictName, keyType::LITERAL);
+
+    if (!dictPtr || tbl.empty())
+    {
+        return;
+    }
+
+    label nwrote = 0;
+
+    const dictionary& dict = *dictPtr;
+
+    for (const entry& dEntry : dict)
+    {
+        const word& entryName = dEntry.keyword();
+
+        const auto iter = tbl.cfind(entryName);
+
+        if (!iter.found())
+        {
+            continue;
+        }
+
+        const auto& funcPtr = iter.val();
+
+        if (funcPtr)
+        {
+            if (!nwrote++)
+            {
+                os.beginBlock(subDictName);
+            }
+
+            os.beginBlock(entryName);
+            os.writeEntry("type", (*funcPtr).type());
+            (*funcPtr).writeEntries(os);
+            os.endBlock();
+        }
+    }
+
+    if (nwrote)
+    {
+        os.endBlock();
+    }
+}
+
+} // End namespace Foam
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::expressions::exprDriver::resetFunctions
+(
+    const dictionary& dict
+)
+{
+    resetFuncsImpl<scalar>("functions<scalar>", dict_, scalarFuncs_, obrPtr_);
+    resetFuncsImpl<vector>("functions<vector>", dict_, vectorFuncs_, obrPtr_);
+
+    if (debug)
+    {
+        writeFunctions(InfoInFunction);
+    }
+}
+
+
+void Foam::expressions::exprDriver::writeFunctions(Ostream& os) const
+{
+    writeFuncsImpl<scalar>(os, "functions<scalar>", dict_, scalarFuncs_);
+    writeFuncsImpl<vector>(os, "functions<vector>", dict_, vectorFuncs_);
+}
+
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/expressions/exprDriver/exprDriverTemplates.C b/src/OpenFOAM/expressions/exprDriver/exprDriverTemplates.C
index d7462f3a382640aac0f1616f5fe181fc92d6be87..e7b99838ccc77b9b20854e42c0137ac21c0b4d5f 100644
--- a/src/OpenFOAM/expressions/exprDriver/exprDriverTemplates.C
+++ b/src/OpenFOAM/expressions/exprDriver/exprDriverTemplates.C
@@ -46,63 +46,6 @@ Foam::expressions::exprDriver::cfindFieldObject
 }
 
 
-template<class TableType>
-bool Foam::expressions::exprDriver::readTable
-(
-    const word& name,
-    const dictionary& dict,
-    HashTable<TableType>& tbl,
-    bool clear
-)
-{
-    if (clear)
-    {
-        tbl.clear();
-    }
-
-    if (!dict.found(name))
-    {
-        return false;
-    }
-
-    ITstream& is = dict.lookup(name);
-    List<dictionary> input(is);
-
-    for (const dictionary& d : input)
-    {
-        tbl.insert(dict.get<word>("name"), TableType(d));
-    }
-
-    return true;
-}
-
-
-template<class TableType>
-void Foam::expressions::exprDriver::writeTable
-(
-    Ostream& os,
-    const word& name,
-    const HashTable<TableType>& tbl
-)
-{
-    if (tbl.size())
-    {
-        os.writeKeyword(name);
-        os  << token::BEGIN_LIST << nl;
-
-        forAllConstIters(tbl, iter)
-        {
-            os.beginBlock();
-            os.writeEntry("name", iter.key());
-            (*iter).write(os);
-            os.endBlock();
-        }
-        os  << token::END_LIST
-            << token::END_STATEMENT << nl;
-    }
-}
-
-
 // * * * * * * * * * * * * Protected Member Functions  * * * * * * * * * * * //
 
 template<class Type>
@@ -180,6 +123,181 @@ Foam::expressions::exprDriver::getResult(bool wantPointData)
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
+template<class Type>
+const Foam::Function1<Type>* Foam::expressions::exprDriver::getFunction1Ptr
+(
+    const word& name,
+    const HashTable<refPtr<Function1<Type>>>& tbl,
+    wordList* listFailure
+)
+{
+    const Function1<Type>* func = nullptr;
+
+    const auto iter = tbl.cfind(name);
+
+    if (iter.found())
+    {
+        func = iter.val().get();
+    }
+
+    if (!func && listFailure)
+    {
+        *listFailure = tbl.sortedToc();
+    }
+
+    return func;
+}
+
+
+template<class Type>
+bool Foam::expressions::exprDriver::isFunction(const word& name) const
+{
+    // Currently only scalar, vector
+    #undef doLocalCode
+    #define doLocalCode(WhichType, MapperMember)                    \
+    if (std::is_same<Type, WhichType>::value)                       \
+    {                                                               \
+        return bool                                                 \
+        (                                                           \
+            this->template getFunction1Ptr<WhichType>               \
+            (                                                       \
+                name, MapperMember                                  \
+            )                                                       \
+        );                                                          \
+    }
+
+    doLocalCode(scalar, scalarFuncs_);
+    doLocalCode(vector, vectorFuncs_);
+    #undef doLocalCode
+
+    return false;
+}
+
+
+template<class Type>
+Type Foam::expressions::exprDriver::getFunctionValue
+(
+    const word& name,
+    const scalar x
+) const
+{
+    const Function1<Type>* func = nullptr;
+
+    wordList failed;
+
+    do
+    {
+        // Currently only scalar, vector
+        #undef doLocalCode
+        #define doLocalCode(WhichType, MapperMember)                \
+        if (std::is_same<Type, WhichType>::value)                   \
+        {                                                           \
+            const Function1<WhichType>* ptr =                       \
+                this->template getFunction1Ptr<WhichType>           \
+                (                                                   \
+                    name, MapperMember, &failed                     \
+                );                                                  \
+            func = reinterpret_cast<const Function1<Type>*>(ptr);   \
+            break;                                                  \
+        }
+
+        doLocalCode(scalar, scalarFuncs_);
+        doLocalCode(vector, vectorFuncs_);
+        #undef doLocalCode
+    }
+    while (false);
+
+    // Error handling
+    if (!failed.empty())
+    {
+        FatalErrorInFunction
+            << "No mapping '" << name << " (" << pTraits<Type>::typeName
+            << ") found." << nl
+            << "Valid entries: "
+            << flatOutput(failed) << nl
+            << exit(FatalError);
+    }
+
+    if (func)
+    {
+        return func->value(x);
+    }
+
+    return pTraits<Type>::zero;
+}
+
+
+template<class Type>
+void Foam::expressions::exprDriver::fillFunctionValues
+(
+    Field<Type>& result,
+    const word& name,
+    const scalarField& input
+) const
+{
+    // #ifdef FULLDEBUG
+    // checkSize(result, input);
+    // #endif
+
+    const Function1<Type>* func = nullptr;
+
+    wordList failed;
+
+    do
+    {
+        // Currently only scalar, vector
+        #undef doLocalCode
+        #define doLocalCode(WhichType, MapperMember)                \
+        if (std::is_same<Type, WhichType>::value)                   \
+        {                                                           \
+            const Function1<WhichType>* ptr =                       \
+                this->template getFunction1Ptr<WhichType>           \
+                (                                                   \
+                    name, MapperMember, &failed                     \
+                );                                                  \
+            func = reinterpret_cast<const Function1<Type>*>(ptr);   \
+            break;                                                  \
+        }
+
+        doLocalCode(scalar, scalarFuncs_);
+        doLocalCode(vector, vectorFuncs_);
+        #undef doLocalCode
+    }
+    while (false);
+
+    // Error handling
+    if (!failed.empty())
+    {
+        FatalErrorInFunction
+            << "No mapping '" << name << " (" << pTraits<Type>::typeName
+            << ") found." << nl
+            << "Valid entries: "
+            << flatOutput(failed) << nl
+            << exit(FatalError);
+    }
+
+    if (func)
+    {
+        const label len = min(result.size(), input.size());
+
+        for (label i = 0; i < len; ++i)
+        {
+            result[i] = func->value(input[i]);
+        }
+
+        // Safety
+        for (label i = len; i < result.size(); ++i)
+        {
+            result[i] = Zero;
+        }
+
+        return;
+    }
+
+    result = Zero;
+}
+
+
 template<class Type>
 bool Foam::expressions::exprDriver::isLocalVariable
 (
diff --git a/src/OpenFOAM/expressions/exprTools/exprTools.C b/src/OpenFOAM/expressions/exprTools/exprTools.C
index 7ce4f220029a9e0ddca6b21c1dcd2c5de2874468..111d295ab82e373115ba9f90cae3e043cdb26d30 100644
--- a/src/OpenFOAM/expressions/exprTools/exprTools.C
+++ b/src/OpenFOAM/expressions/exprTools/exprTools.C
@@ -178,7 +178,7 @@ Foam::exprTools::getList
         FatalIOErrorInFunction(dict)
             << " Entry '"<< keyword
             << "' not a string or list of strings" << nl
-            << exit(FatalError);
+            << exit(FatalIOError);
 
         return result;
     }
diff --git a/src/OpenFOAM/expressions/fields/fieldExprDriver.H b/src/OpenFOAM/expressions/fields/fieldExprDriver.H
index 7407877350875bdce2d4f3d54f033164fc7bd331..c1d7ed04c880f4ad3fb7ce92dad8138a73124ba9 100644
--- a/src/OpenFOAM/expressions/fields/fieldExprDriver.H
+++ b/src/OpenFOAM/expressions/fields/fieldExprDriver.H
@@ -156,8 +156,7 @@ public:
 
         //- Return named field (variable) if available
         template<class Type>
-        tmp<Field<Type>>
-        getField(const word& fieldName) const;
+        tmp<Field<Type>> getField(const word& fieldName) const;
 
 
     // Custom Field Functions
diff --git a/src/OpenFOAM/expressions/fields/fieldExprDriverFields.C b/src/OpenFOAM/expressions/fields/fieldExprDriverFields.C
index bb8f285ccf878dc939a87a6f6320c4127fb2e634..47d890b6046ec2feeacff3680ef2a7b4824e8adc 100644
--- a/src/OpenFOAM/expressions/fields/fieldExprDriverFields.C
+++ b/src/OpenFOAM/expressions/fields/fieldExprDriverFields.C
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2019 OpenCFD Ltd.
+    Copyright (C) 2019-2021 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
diff --git a/src/OpenFOAM/expressions/fields/fieldExprLemonParser.lyy-m4 b/src/OpenFOAM/expressions/fields/fieldExprLemonParser.lyy-m4
index b29f09dac0c17976a7935b43c7d57de8e1bf4f05..ce845dda4ab64b90de9d43dd4c66125af7062ce9 100644
--- a/src/OpenFOAM/expressions/fields/fieldExprLemonParser.lyy-m4
+++ b/src/OpenFOAM/expressions/fields/fieldExprLemonParser.lyy-m4
@@ -173,8 +173,11 @@ svalue (lhs) ::= DELTA_T LPAREN RPAREN . { lhs = driver->deltaT(); }
 
 svalue (lhs) ::= SCALAR_FUNCTION_ID (name) LPAREN RPAREN .
 {
-    driver->reportFatal("Not implemented: " + make_obj(name.name_));
-    lhs = 0;
+    lhs = driver->getFunctionValue<Foam::scalar>
+    (
+        make_obj(name.name_),
+        driver->timeValue()
+    );
 }
 
 
@@ -193,8 +196,12 @@ vvalue (lhs) ::= VECTOR_VALUE (tok) .
 
 vvalue (lhs) ::= VECTOR_FUNCTION_ID (name) LPAREN RPAREN .
 {
-    driver->reportFatal("Not implemented: " + make_obj(name.name_));
-    lhs = new Foam::vector(0,0,0);
+    auto val = driver->getFunctionValue<Foam::vector>
+    (
+        make_obj(name.name_),
+        driver->timeValue()
+    );
+    lhs = new Foam::vector(val);
 }
 
 
@@ -253,8 +260,12 @@ _target_ (lhs) ::= RAND LPAREN NUMBER (seed) RPAREN.
 _target_ (lhs) ::= SCALAR_FUNCTION_ID (name) LPAREN _scalar_arg_ (values) RPAREN.
 {
     lhs = _new_target_;
-    (void) make_obj(values);
-    driver->reportFatal("Not implemented: " + make_obj(name.name_));
+    driver->fillFunctionValues<_value_type_>
+    (
+        *lhs,
+        make_obj(name.name_),
+        make_obj(values)
+    );
 }
 
 
@@ -283,8 +294,12 @@ rules_vector_functions()
 _target_ (lhs) ::= VECTOR_FUNCTION_ID (name) LPAREN _scalar_arg_ (values) RPAREN.
 {
     lhs = _new_target_;
-    (void) make_obj(values);
-    driver->reportFatal("Not implemented: " + make_obj(name.name_));
+    driver->fillFunctionValues<_value_type_>
+    (
+        *lhs,
+        make_obj(name.name_),
+        make_obj(values)
+    );
 }
 
 
diff --git a/src/OpenFOAM/expressions/fields/fieldExprScanner.cc b/src/OpenFOAM/expressions/fields/fieldExprScanner.cc
index 99503b8e010ab3d84e32db856d875106a7b9e635..be55e6c93e62da6f46feb546e6b96d716b9bf6de 100644
--- a/src/OpenFOAM/expressions/fields/fieldExprScanner.cc
+++ b/src/OpenFOAM/expressions/fields/fieldExprScanner.cc
@@ -178,14 +178,14 @@ static int driverTokenType
 
 
 #line 181 "fieldExprScanner.cc"
-static const int fieldExpr_start = 13;
-static const int fieldExpr_first_final = 13;
+static const int fieldExpr_start = 14;
+static const int fieldExpr_first_final = 14;
 static const int fieldExpr_error = 0;
 
-static const int fieldExpr_en_main = 13;
+static const int fieldExpr_en_main = 14;
 
 
-#line 326 "fieldExprScanner.rl"
+#line 330 "fieldExprScanner.rl"
 
 
 
@@ -294,6 +294,22 @@ bool Foam::expressions::fieldExpr::scanner::dispatch_ident
 
         do
         {
+            #undef  doLocalCode
+            #define doLocalCode(TokType, Type)                      \
+            if (driver_.isFunction<Type>(funcName))                 \
+            {                                                       \
+                ident = std::move(funcName);                        \
+                tokType = TokType;                                  \
+                break;                                              \
+            }
+
+            #ifdef TOK_SCALAR_FUNCTION_ID
+            doLocalCode(TOK_SCALAR_FUNCTION_ID, scalar);
+            #endif
+            #ifdef TOK_VECTOR_FUNCTION_ID
+            doLocalCode(TOK_VECTOR_FUNCTION_ID, vector);
+            #endif
+            #undef doLocalCode
         }
         while (false);
     }
@@ -427,7 +443,7 @@ bool Foam::expressions::fieldExpr::scanner::process
 
     // Initialize FSM variables
     
-#line 431 "fieldExprScanner.cc"
+#line 447 "fieldExprScanner.cc"
 	{
 	cs = fieldExpr_start;
 	ts = 0;
@@ -435,11 +451,11 @@ bool Foam::expressions::fieldExpr::scanner::process
 	act = 0;
 	}
 
-#line 566 "fieldExprScanner.rl"
+#line 586 "fieldExprScanner.rl"
    /* ^^^ FSM initialization here ^^^ */;
 
     
-#line 443 "fieldExprScanner.cc"
+#line 459 "fieldExprScanner.cc"
 	{
 	if ( p == pe )
 		goto _test_eof;
@@ -453,7 +469,7 @@ tr2:
         dispatch_ident(driver_, word(ts, te-ts, false));
         driver_.parsePosition() = (p-buf);
     }}
-	goto st13;
+	goto st14;
 tr4:
 #line 206 "fieldExprScanner.rl"
 	{te = p+1;{
@@ -462,7 +478,7 @@ tr4:
         dispatch_ident(driver_, word(ts, te-ts, false));
         driver_.parsePosition() = (p-buf);
     }}
-	goto st13;
+	goto st14;
 tr5:
 #line 181 "fieldExprScanner.rl"
 	{{p = ((te))-1;}{
@@ -489,108 +505,117 @@ tr5:
 
         driver_.parsePosition() = (p-buf);
     }}
-	goto st13;
+	goto st14;
 tr8:
-#line 250 "fieldExprScanner.rl"
+#line 254 "fieldExprScanner.rl"
 	{te = p+1;{ EMIT_TOKEN(EQUAL); }}
-	goto st13;
+	goto st14;
 tr9:
-#line 302 "fieldExprScanner.rl"
-	{{p = ((te))-1;}{ EMIT_TOKEN(TENSOR); }}
-	goto st13;
+#line 206 "fieldExprScanner.rl"
+	{{p = ((te))-1;}{
+        // Emit identifier
+        driver_.parsePosition() = (ts-buf);
+        dispatch_ident(driver_, word(ts, te-ts, false));
+        driver_.parsePosition() = (p-buf);
+    }}
+	goto st14;
 tr11:
-#line 313 "fieldExprScanner.rl"
+#line 306 "fieldExprScanner.rl"
+	{{p = ((te))-1;}{ EMIT_TOKEN(TENSOR); }}
+	goto st14;
+tr13:
+#line 317 "fieldExprScanner.rl"
 	{te = p+1;{ EMIT_TOKEN(IDENTITY_TENSOR); }}
-	goto st13;
-tr12:
-#line 301 "fieldExprScanner.rl"
-	{{p = ((te))-1;}{ EMIT_TOKEN(VECTOR); }}
-	goto st13;
+	goto st14;
 tr14:
-#line 310 "fieldExprScanner.rl"
+#line 305 "fieldExprScanner.rl"
+	{{p = ((te))-1;}{ EMIT_TOKEN(VECTOR); }}
+	goto st14;
+tr16:
+#line 314 "fieldExprScanner.rl"
 	{te = p+1;{ EMIT_VECTOR_TOKEN(1,0,0); }}
-	goto st13;
-tr15:
-#line 311 "fieldExprScanner.rl"
+	goto st14;
+tr17:
+#line 315 "fieldExprScanner.rl"
 	{te = p+1;{ EMIT_VECTOR_TOKEN(0,1,0); }}
-	goto st13;
-tr16:
-#line 312 "fieldExprScanner.rl"
+	goto st14;
+tr18:
+#line 316 "fieldExprScanner.rl"
 	{te = p+1;{ EMIT_VECTOR_TOKEN(0,0,1); }}
-	goto st13;
-tr17:
-#line 253 "fieldExprScanner.rl"
+	goto st14;
+tr19:
+#line 257 "fieldExprScanner.rl"
 	{te = p+1;{ EMIT_TOKEN(LOR); }}
-	goto st13;
-tr21:
-#line 235 "fieldExprScanner.rl"
+	goto st14;
+tr23:
+#line 239 "fieldExprScanner.rl"
 	{te = p+1;{ EMIT_TOKEN(PERCENT); }}
-	goto st13;
-tr24:
-#line 236 "fieldExprScanner.rl"
+	goto st14;
+tr26:
+#line 240 "fieldExprScanner.rl"
 	{te = p+1;{ EMIT_TOKEN(LPAREN); }}
-	goto st13;
-tr25:
-#line 237 "fieldExprScanner.rl"
+	goto st14;
+tr27:
+#line 241 "fieldExprScanner.rl"
 	{te = p+1;{ EMIT_TOKEN(RPAREN); }}
-	goto st13;
-tr26:
-#line 238 "fieldExprScanner.rl"
+	goto st14;
+tr28:
+#line 242 "fieldExprScanner.rl"
 	{te = p+1;{ EMIT_TOKEN(TIMES); }}
-	goto st13;
-tr27:
-#line 239 "fieldExprScanner.rl"
+	goto st14;
+tr29:
+#line 243 "fieldExprScanner.rl"
 	{te = p+1;{ EMIT_TOKEN(PLUS); }}
-	goto st13;
-tr28:
-#line 241 "fieldExprScanner.rl"
+	goto st14;
+tr30:
+#line 245 "fieldExprScanner.rl"
 	{te = p+1;{ EMIT_TOKEN(COMMA); }}
-	goto st13;
-tr29:
-#line 240 "fieldExprScanner.rl"
-	{te = p+1;{ EMIT_TOKEN(MINUS); }}
-	goto st13;
+	goto st14;
 tr31:
-#line 243 "fieldExprScanner.rl"
-	{te = p+1;{ EMIT_TOKEN(DIVIDE); }}
-	goto st13;
+#line 244 "fieldExprScanner.rl"
+	{te = p+1;{ EMIT_TOKEN(MINUS); }}
+	goto st14;
 tr33:
-#line 245 "fieldExprScanner.rl"
+#line 247 "fieldExprScanner.rl"
+	{te = p+1;{ EMIT_TOKEN(DIVIDE); }}
+	goto st14;
+tr35:
+#line 249 "fieldExprScanner.rl"
 	{te = p+1;{ EMIT_TOKEN(COLON); }}
-	goto st13;
-tr37:
-#line 244 "fieldExprScanner.rl"
+	goto st14;
+tr39:
+#line 248 "fieldExprScanner.rl"
 	{te = p+1;{ EMIT_TOKEN(QUESTION); }}
-	goto st13;
-tr40:
-#line 256 "fieldExprScanner.rl"
+	goto st14;
+tr41:
+#line 260 "fieldExprScanner.rl"
 	{te = p+1;{ EMIT_TOKEN(BIT_XOR); }}
-	goto st13;
-tr56:
-#line 229 "fieldExprScanner.rl"
-	{te = p;p--;}
-	goto st13;
+	goto st14;
 tr57:
-#line 234 "fieldExprScanner.rl"
-	{te = p;p--;{ EMIT_TOKEN(LNOT); }}
-	goto st13;
+#line 233 "fieldExprScanner.rl"
+	{te = p;p--;}
+	goto st14;
 tr58:
-#line 251 "fieldExprScanner.rl"
-	{te = p+1;{ EMIT_TOKEN(NOT_EQUAL); }}
-	goto st13;
+#line 238 "fieldExprScanner.rl"
+	{te = p;p--;{ EMIT_TOKEN(LNOT); }}
+	goto st14;
 tr59:
-#line 254 "fieldExprScanner.rl"
-	{te = p;p--;{ EMIT_TOKEN(BIT_AND); }}
-	goto st13;
+#line 255 "fieldExprScanner.rl"
+	{te = p+1;{ EMIT_TOKEN(NOT_EQUAL); }}
+	goto st14;
 tr60:
-#line 252 "fieldExprScanner.rl"
-	{te = p+1;{ EMIT_TOKEN(LAND); }}
-	goto st13;
+#line 258 "fieldExprScanner.rl"
+	{te = p;p--;{ EMIT_TOKEN(BIT_AND); }}
+	goto st14;
 tr61:
-#line 242 "fieldExprScanner.rl"
+#line 256 "fieldExprScanner.rl"
+	{te = p+1;{ EMIT_TOKEN(LAND); }}
+	goto st14;
+tr62:
+#line 246 "fieldExprScanner.rl"
 	{te = p;p--;{ EMIT_TOKEN(DOT); }}
-	goto st13;
-tr64:
+	goto st14;
+tr65:
 #line 181 "fieldExprScanner.rl"
 	{te = p;p--;{
         // Emit number
@@ -616,8 +641,8 @@ tr64:
 
         driver_.parsePosition() = (p-buf);
     }}
-	goto st13;
-tr66:
+	goto st14;
+tr67:
 #line 213 "fieldExprScanner.rl"
 	{te = p;p--;{
         // Tokenized ".method" - dispatch '.' and "method" separately
@@ -625,24 +650,24 @@ tr66:
         dispatch_method(driver_, word(ts+1, te-ts-1, false));
         driver_.parsePosition() = (p-buf);
     }}
-	goto st13;
-tr67:
-#line 246 "fieldExprScanner.rl"
-	{te = p;p--;{ EMIT_TOKEN(LESS); }}
-	goto st13;
+	goto st14;
 tr68:
-#line 247 "fieldExprScanner.rl"
-	{te = p+1;{ EMIT_TOKEN(LESS_EQ); }}
-	goto st13;
+#line 250 "fieldExprScanner.rl"
+	{te = p;p--;{ EMIT_TOKEN(LESS); }}
+	goto st14;
 tr69:
-#line 248 "fieldExprScanner.rl"
-	{te = p;p--;{ EMIT_TOKEN(GREATER); }}
-	goto st13;
+#line 251 "fieldExprScanner.rl"
+	{te = p+1;{ EMIT_TOKEN(LESS_EQ); }}
+	goto st14;
 tr70:
-#line 249 "fieldExprScanner.rl"
-	{te = p+1;{ EMIT_TOKEN(GREATER_EQ); }}
-	goto st13;
+#line 252 "fieldExprScanner.rl"
+	{te = p;p--;{ EMIT_TOKEN(GREATER); }}
+	goto st14;
 tr71:
+#line 253 "fieldExprScanner.rl"
+	{te = p+1;{ EMIT_TOKEN(GREATER_EQ); }}
+	goto st14;
+tr72:
 #line 206 "fieldExprScanner.rl"
 	{te = p;p--;{
         // Emit identifier
@@ -650,8 +675,8 @@ tr71:
         dispatch_ident(driver_, word(ts, te-ts, false));
         driver_.parsePosition() = (p-buf);
     }}
-	goto st13;
-tr73:
+	goto st14;
+tr74:
 #line 1 "NONE"
 	{	switch( act ) {
 	case 26:
@@ -760,130 +785,130 @@ tr73:
 	break;
 	}
 	}
-	goto st13;
-tr89:
-#line 278 "fieldExprScanner.rl"
+	goto st14;
+tr90:
+#line 282 "fieldExprScanner.rl"
 	{te = p;p--;{ EMIT_TOKEN(ATAN); }}
-	goto st13;
-tr104:
-#line 274 "fieldExprScanner.rl"
+	goto st14;
+tr105:
+#line 278 "fieldExprScanner.rl"
 	{te = p;p--;{ EMIT_TOKEN(COS); }}
-	goto st13;
-tr125:
-#line 267 "fieldExprScanner.rl"
+	goto st14;
+tr128:
+#line 271 "fieldExprScanner.rl"
 	{te = p;p--;{ EMIT_TOKEN(LOG); }}
-	goto st13;
-tr132:
-#line 283 "fieldExprScanner.rl"
-	{te = p;p--;{ EMIT_TOKEN(MAG); }}
-	goto st13;
-tr139:
+	goto st14;
+tr135:
 #line 287 "fieldExprScanner.rl"
+	{te = p;p--;{ EMIT_TOKEN(MAG); }}
+	goto st14;
+tr142:
+#line 291 "fieldExprScanner.rl"
 	{te = p;p--;{ EMIT_TOKEN(NEG); }}
-	goto st13;
-tr145:
-#line 286 "fieldExprScanner.rl"
+	goto st14;
+tr148:
+#line 290 "fieldExprScanner.rl"
 	{te = p;p--;{ EMIT_TOKEN(POS); }}
-	goto st13;
-tr164:
-#line 273 "fieldExprScanner.rl"
+	goto st14;
+tr167:
+#line 277 "fieldExprScanner.rl"
 	{te = p;p--;{ EMIT_TOKEN(SIN); }}
-	goto st13;
-tr180:
-#line 270 "fieldExprScanner.rl"
+	goto st14;
+tr183:
+#line 274 "fieldExprScanner.rl"
 	{te = p;p--;{ EMIT_TOKEN(SQR); }}
-	goto st13;
-tr196:
-#line 275 "fieldExprScanner.rl"
+	goto st14;
+tr199:
+#line 279 "fieldExprScanner.rl"
 	{te = p;p--;{ EMIT_TOKEN(TAN); }}
-	goto st13;
-tr202:
-#line 302 "fieldExprScanner.rl"
+	goto st14;
+tr205:
+#line 306 "fieldExprScanner.rl"
 	{te = p;p--;{ EMIT_TOKEN(TENSOR); }}
-	goto st13;
-tr213:
-#line 301 "fieldExprScanner.rl"
+	goto st14;
+tr216:
+#line 305 "fieldExprScanner.rl"
 	{te = p;p--;{ EMIT_TOKEN(VECTOR); }}
-	goto st13;
-st13:
+	goto st14;
+st14:
 #line 1 "NONE"
 	{ts = 0;}
 	if ( ++p == pe )
-		goto _test_eof13;
-case 13:
+		goto _test_eof14;
+case 14:
 #line 1 "NONE"
 	{ts = p;}
-#line 817 "fieldExprScanner.cc"
+#line 842 "fieldExprScanner.cc"
 	switch( (*p) ) {
-		case 32: goto st14;
-		case 33: goto st15;
+		case 32: goto st15;
+		case 33: goto st16;
 		case 34: goto st1;
-		case 37: goto tr21;
-		case 38: goto st16;
+		case 37: goto tr23;
+		case 38: goto st17;
 		case 39: goto st3;
-		case 40: goto tr24;
-		case 41: goto tr25;
-		case 42: goto tr26;
-		case 43: goto tr27;
-		case 44: goto tr28;
-		case 45: goto tr29;
-		case 46: goto st17;
-		case 47: goto tr31;
-		case 58: goto tr33;
-		case 60: goto st22;
+		case 40: goto tr26;
+		case 41: goto tr27;
+		case 42: goto tr28;
+		case 43: goto tr29;
+		case 44: goto tr30;
+		case 45: goto tr31;
+		case 46: goto st18;
+		case 47: goto tr33;
+		case 58: goto tr35;
+		case 60: goto st23;
 		case 61: goto st7;
-		case 62: goto st23;
-		case 63: goto tr37;
-		case 90: goto st26;
-		case 94: goto tr40;
-		case 95: goto st24;
-		case 97: goto st29;
-		case 98: goto st43;
-		case 99: goto st46;
-		case 100: goto st51;
-		case 101: goto st61;
-		case 102: goto st63;
-		case 108: goto st67;
-		case 109: goto st71;
-		case 110: goto st77;
-		case 112: goto st80;
-		case 114: goto st83;
-		case 115: goto st91;
-		case 116: goto st119;
-		case 118: goto st131;
-		case 124: goto st12;
+		case 62: goto st24;
+		case 63: goto tr39;
+		case 90: goto st27;
+		case 94: goto tr41;
+		case 95: goto st25;
+		case 97: goto st30;
+		case 98: goto st44;
+		case 99: goto st47;
+		case 100: goto st52;
+		case 101: goto st62;
+		case 102: goto st64;
+		case 108: goto st69;
+		case 109: goto st73;
+		case 110: goto st79;
+		case 112: goto st82;
+		case 114: goto st85;
+		case 115: goto st93;
+		case 116: goto st121;
+		case 118: goto st133;
+		case 124: goto st13;
 	}
 	if ( (*p) < 48 ) {
 		if ( 9 <= (*p) && (*p) <= 13 )
-			goto st14;
+			goto st15;
 	} else if ( (*p) > 57 ) {
 		if ( (*p) > 89 ) {
 			if ( 103 <= (*p) && (*p) <= 122 )
-				goto st24;
+				goto st25;
 		} else if ( (*p) >= 65 )
-			goto st24;
+			goto st25;
 	} else
-		goto tr32;
+		goto tr34;
 	goto st0;
 st0:
 cs = 0;
 	goto _out;
-st14:
-	if ( ++p == pe )
-		goto _test_eof14;
-case 14:
-	if ( (*p) == 32 )
-		goto st14;
-	if ( 9 <= (*p) && (*p) <= 13 )
-		goto st14;
-	goto tr56;
 st15:
 	if ( ++p == pe )
 		goto _test_eof15;
 case 15:
-	if ( (*p) == 61 )
-		goto tr58;
+	if ( (*p) == 32 )
+		goto st15;
+	if ( 9 <= (*p) && (*p) <= 13 )
+		goto st15;
 	goto tr57;
+st16:
+	if ( ++p == pe )
+		goto _test_eof16;
+case 16:
+	if ( (*p) == 61 )
+		goto tr59;
+	goto tr58;
 st1:
 	if ( ++p == pe )
 		goto _test_eof1;
@@ -898,13 +923,13 @@ case 2:
 	if ( (*p) == 34 )
 		goto tr2;
 	goto st2;
-st16:
+st17:
 	if ( ++p == pe )
-		goto _test_eof16;
-case 16:
+		goto _test_eof17;
+case 17:
 	if ( (*p) == 38 )
-		goto tr60;
-	goto tr59;
+		goto tr61;
+	goto tr60;
 st3:
 	if ( ++p == pe )
 		goto _test_eof3;
@@ -919,35 +944,35 @@ case 4:
 	if ( (*p) == 39 )
 		goto tr4;
 	goto st4;
-st17:
+st18:
 	if ( ++p == pe )
-		goto _test_eof17;
-case 17:
+		goto _test_eof18;
+case 18:
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr62;
+			goto tr63;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto st20;
+			goto st21;
 	} else
-		goto st20;
-	goto tr61;
-tr62:
+		goto st21;
+	goto tr62;
+tr63:
 #line 1 "NONE"
 	{te = p+1;}
-	goto st18;
-st18:
+	goto st19;
+st19:
 	if ( ++p == pe )
-		goto _test_eof18;
-case 18:
-#line 944 "fieldExprScanner.cc"
+		goto _test_eof19;
+case 19:
+#line 969 "fieldExprScanner.cc"
 	switch( (*p) ) {
 		case 69: goto st5;
 		case 101: goto st5;
 	}
 	if ( 48 <= (*p) && (*p) <= 57 )
-		goto tr62;
-	goto tr64;
+		goto tr63;
+	goto tr65;
 st5:
 	if ( ++p == pe )
 		goto _test_eof5;
@@ -957,56 +982,56 @@ case 5:
 		case 45: goto st6;
 	}
 	if ( 48 <= (*p) && (*p) <= 57 )
-		goto st19;
+		goto st20;
 	goto tr5;
 st6:
 	if ( ++p == pe )
 		goto _test_eof6;
 case 6:
 	if ( 48 <= (*p) && (*p) <= 57 )
-		goto st19;
+		goto st20;
 	goto tr5;
-st19:
-	if ( ++p == pe )
-		goto _test_eof19;
-case 19:
-	if ( 48 <= (*p) && (*p) <= 57 )
-		goto st19;
-	goto tr64;
 st20:
 	if ( ++p == pe )
 		goto _test_eof20;
 case 20:
+	if ( 48 <= (*p) && (*p) <= 57 )
+		goto st20;
+	goto tr65;
+st21:
+	if ( ++p == pe )
+		goto _test_eof21;
+case 21:
 	if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto st20;
+			goto st21;
 	} else if ( (*p) >= 65 )
-		goto st20;
-	goto tr66;
-tr32:
+		goto st21;
+	goto tr67;
+tr34:
 #line 1 "NONE"
 	{te = p+1;}
-	goto st21;
-st21:
+	goto st22;
+st22:
 	if ( ++p == pe )
-		goto _test_eof21;
-case 21:
-#line 995 "fieldExprScanner.cc"
+		goto _test_eof22;
+case 22:
+#line 1020 "fieldExprScanner.cc"
 	switch( (*p) ) {
-		case 46: goto tr62;
+		case 46: goto tr63;
 		case 69: goto st5;
 		case 101: goto st5;
 	}
 	if ( 48 <= (*p) && (*p) <= 57 )
-		goto tr32;
-	goto tr64;
-st22:
+		goto tr34;
+	goto tr65;
+st23:
 	if ( ++p == pe )
-		goto _test_eof22;
-case 22:
+		goto _test_eof23;
+case 23:
 	if ( (*p) == 61 )
-		goto tr68;
-	goto tr67;
+		goto tr69;
+	goto tr68;
 st7:
 	if ( ++p == pe )
 		goto _test_eof7;
@@ -1014,2330 +1039,2365 @@ case 7:
 	if ( (*p) == 61 )
 		goto tr8;
 	goto st0;
-st23:
-	if ( ++p == pe )
-		goto _test_eof23;
-case 23:
-	if ( (*p) == 61 )
-		goto tr70;
-	goto tr69;
 st24:
 	if ( ++p == pe )
 		goto _test_eof24;
 case 24:
+	if ( (*p) == 61 )
+		goto tr71;
+	goto tr70;
+st25:
+	if ( ++p == pe )
+		goto _test_eof25;
+case 25:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
+		case 46: goto tr73;
+		case 95: goto tr73;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
-tr72:
+		goto tr73;
+	goto tr72;
+tr73:
 #line 1 "NONE"
 	{te = p+1;}
 #line 206 "fieldExprScanner.rl"
 	{act = 73;}
-	goto st25;
-tr76:
+	goto st26;
+tr77:
 #line 1 "NONE"
 	{te = p+1;}
-#line 309 "fieldExprScanner.rl"
+#line 313 "fieldExprScanner.rl"
 	{act = 65;}
-	goto st25;
-tr83:
+	goto st26;
+tr84:
 #line 1 "NONE"
 	{te = p+1;}
-#line 277 "fieldExprScanner.rl"
+#line 281 "fieldExprScanner.rl"
 	{act = 40;}
-	goto st25;
-tr84:
+	goto st26;
+tr85:
 #line 1 "NONE"
 	{te = p+1;}
-#line 314 "fieldExprScanner.rl"
+#line 318 "fieldExprScanner.rl"
 	{act = 70;}
-	goto st25;
-tr86:
+	goto st26;
+tr87:
 #line 1 "NONE"
 	{te = p+1;}
-#line 276 "fieldExprScanner.rl"
+#line 280 "fieldExprScanner.rl"
 	{act = 39;}
-	goto st25;
-tr90:
+	goto st26;
+tr91:
 #line 1 "NONE"
 	{te = p+1;}
-#line 279 "fieldExprScanner.rl"
+#line 283 "fieldExprScanner.rl"
 	{act = 42;}
-	goto st25;
-tr95:
+	goto st26;
+tr96:
 #line 1 "NONE"
 	{te = p+1;}
-#line 295 "fieldExprScanner.rl"
+#line 299 "fieldExprScanner.rl"
 	{act = 55;}
-	goto st25;
-tr98:
+	goto st26;
+tr99:
 #line 1 "NONE"
 	{te = p+1;}
-#line 300 "fieldExprScanner.rl"
+#line 304 "fieldExprScanner.rl"
 	{act = 58;}
-	goto st25;
-tr102:
+	goto st26;
+tr103:
 #line 1 "NONE"
 	{te = p+1;}
-#line 272 "fieldExprScanner.rl"
+#line 276 "fieldExprScanner.rl"
 	{act = 35;}
-	goto st25;
-tr105:
+	goto st26;
+tr106:
 #line 1 "NONE"
 	{te = p+1;}
-#line 281 "fieldExprScanner.rl"
+#line 285 "fieldExprScanner.rl"
 	{act = 44;}
-	goto st25;
-tr113:
+	goto st26;
+tr114:
 #line 1 "NONE"
 	{te = p+1;}
-#line 264 "fieldExprScanner.rl"
+#line 268 "fieldExprScanner.rl"
 	{act = 27;}
-	goto st25;
-tr116:
+	goto st26;
+tr117:
 #line 1 "NONE"
 	{te = p+1;}
-#line 316 "fieldExprScanner.rl"
+#line 320 "fieldExprScanner.rl"
 	{act = 72;}
-	goto st25;
-tr118:
+	goto st26;
+tr119:
 #line 1 "NONE"
 	{te = p+1;}
-#line 266 "fieldExprScanner.rl"
+#line 270 "fieldExprScanner.rl"
 	{act = 29;}
-	goto st25;
-tr122:
+	goto st26;
+tr124:
 #line 1 "NONE"
 	{te = p+1;}
-#line 308 "fieldExprScanner.rl"
+#line 312 "fieldExprScanner.rl"
 	{act = 64;}
-	goto st25;
-tr127:
+	goto st26;
+tr130:
 #line 1 "NONE"
 	{te = p+1;}
-#line 268 "fieldExprScanner.rl"
+#line 272 "fieldExprScanner.rl"
 	{act = 31;}
-	goto st25;
-tr131:
+	goto st26;
+tr134:
 #line 1 "NONE"
 	{te = p+1;}
-#line 294 "fieldExprScanner.rl"
+#line 298 "fieldExprScanner.rl"
 	{act = 54;}
-	goto st25;
-tr135:
+	goto st26;
+tr138:
 #line 1 "NONE"
 	{te = p+1;}
-#line 284 "fieldExprScanner.rl"
+#line 288 "fieldExprScanner.rl"
 	{act = 47;}
-	goto st25;
-tr136:
+	goto st26;
+tr139:
 #line 1 "NONE"
 	{te = p+1;}
-#line 293 "fieldExprScanner.rl"
+#line 297 "fieldExprScanner.rl"
 	{act = 53;}
-	goto st25;
-tr140:
+	goto st26;
+tr143:
 #line 1 "NONE"
 	{te = p+1;}
-#line 289 "fieldExprScanner.rl"
+#line 293 "fieldExprScanner.rl"
 	{act = 51;}
-	goto st25;
-tr141:
+	goto st26;
+tr144:
 #line 1 "NONE"
 	{te = p+1;}
-#line 263 "fieldExprScanner.rl"
+#line 267 "fieldExprScanner.rl"
 	{act = 26;}
-	goto st25;
-tr144:
+	goto st26;
+tr147:
 #line 1 "NONE"
 	{te = p+1;}
-#line 269 "fieldExprScanner.rl"
+#line 273 "fieldExprScanner.rl"
 	{act = 32;}
-	goto st25;
-tr146:
+	goto st26;
+tr149:
 #line 1 "NONE"
 	{te = p+1;}
-#line 288 "fieldExprScanner.rl"
+#line 292 "fieldExprScanner.rl"
 	{act = 50;}
-	goto st25;
-tr154:
+	goto st26;
+tr157:
 #line 1 "NONE"
 	{te = p+1;}
-#line 265 "fieldExprScanner.rl"
+#line 269 "fieldExprScanner.rl"
 	{act = 28;}
-	goto st25;
-tr155:
+	goto st26;
+tr158:
 #line 1 "NONE"
 	{te = p+1;}
-#line 297 "fieldExprScanner.rl"
+#line 301 "fieldExprScanner.rl"
 	{act = 57;}
-	goto st25;
-tr163:
+	goto st26;
+tr166:
 #line 1 "NONE"
 	{te = p+1;}
-#line 290 "fieldExprScanner.rl"
+#line 294 "fieldExprScanner.rl"
 	{act = 52;}
-	goto st25;
-tr165:
+	goto st26;
+tr168:
 #line 1 "NONE"
 	{te = p+1;}
-#line 280 "fieldExprScanner.rl"
+#line 284 "fieldExprScanner.rl"
 	{act = 43;}
-	goto st25;
-tr178:
+	goto st26;
+tr181:
 #line 1 "NONE"
 	{te = p+1;}
-#line 304 "fieldExprScanner.rl"
+#line 308 "fieldExprScanner.rl"
 	{act = 62;}
-	goto st25;
-tr181:
+	goto st26;
+tr184:
 #line 1 "NONE"
 	{te = p+1;}
-#line 271 "fieldExprScanner.rl"
+#line 275 "fieldExprScanner.rl"
 	{act = 34;}
-	goto st25;
-tr182:
+	goto st26;
+tr185:
 #line 1 "NONE"
 	{te = p+1;}
-#line 296 "fieldExprScanner.rl"
+#line 300 "fieldExprScanner.rl"
 	{act = 56;}
-	goto st25;
-tr190:
+	goto st26;
+tr193:
 #line 1 "NONE"
 	{te = p+1;}
-#line 303 "fieldExprScanner.rl"
+#line 307 "fieldExprScanner.rl"
 	{act = 61;}
-	goto st25;
-tr197:
+	goto st26;
+tr200:
 #line 1 "NONE"
 	{te = p+1;}
-#line 282 "fieldExprScanner.rl"
+#line 286 "fieldExprScanner.rl"
 	{act = 45;}
-	goto st25;
-tr205:
+	goto st26;
+tr208:
 #line 1 "NONE"
 	{te = p+1;}
-#line 315 "fieldExprScanner.rl"
+#line 319 "fieldExprScanner.rl"
 	{act = 71;}
-	goto st25;
-tr207:
+	goto st26;
+tr210:
 #line 1 "NONE"
 	{te = p+1;}
-#line 307 "fieldExprScanner.rl"
+#line 311 "fieldExprScanner.rl"
 	{act = 63;}
-	goto st25;
-st25:
-	if ( ++p == pe )
-		goto _test_eof25;
-case 25:
-#line 1244 "fieldExprScanner.cc"
-	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-	}
-	if ( (*p) < 65 ) {
-		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
-	} else if ( (*p) > 90 ) {
-		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
-	} else
-		goto tr72;
-	goto tr73;
+	goto st26;
 st26:
 	if ( ++p == pe )
 		goto _test_eof26;
 case 26:
+#line 1269 "fieldExprScanner.cc"
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 101: goto st27;
+		case 46: goto tr73;
+		case 95: goto tr73;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr74;
 st27:
 	if ( ++p == pe )
 		goto _test_eof27;
 case 27:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 114: goto st28;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 101: goto st28;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st28:
 	if ( ++p == pe )
 		goto _test_eof28;
 case 28:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 111: goto tr76;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 114: goto st29;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st29:
 	if ( ++p == pe )
 		goto _test_eof29;
 case 29:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 99: goto st30;
-		case 114: goto st32;
-		case 115: goto st33;
-		case 116: goto st35;
-		case 118: goto st38;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 111: goto tr77;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st30:
 	if ( ++p == pe )
 		goto _test_eof30;
 case 30:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 111: goto st31;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 99: goto st31;
+		case 114: goto st33;
+		case 115: goto st34;
+		case 116: goto st36;
+		case 118: goto st39;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st31:
 	if ( ++p == pe )
 		goto _test_eof31;
 case 31:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 115: goto tr83;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 111: goto st32;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st32:
 	if ( ++p == pe )
 		goto _test_eof32;
 case 32:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 103: goto tr84;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 115: goto tr84;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st33:
 	if ( ++p == pe )
 		goto _test_eof33;
 case 33:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 105: goto st34;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 103: goto tr85;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st34:
 	if ( ++p == pe )
 		goto _test_eof34;
 case 34:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 110: goto tr86;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 105: goto st35;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st35:
 	if ( ++p == pe )
 		goto _test_eof35;
 case 35:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 97: goto st36;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 110: goto tr87;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
-		if ( 98 <= (*p) && (*p) <= 122 )
-			goto tr72;
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st36:
 	if ( ++p == pe )
 		goto _test_eof36;
 case 36:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 110: goto st37;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 97: goto st37;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
-		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+		if ( 98 <= (*p) && (*p) <= 122 )
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st37:
 	if ( ++p == pe )
 		goto _test_eof37;
 case 37:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 50: goto tr90;
-		case 95: goto tr72;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 110: goto st38;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr89;
+		goto tr73;
+	goto tr72;
 st38:
 	if ( ++p == pe )
 		goto _test_eof38;
 case 38:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 101: goto st39;
+		case 46: goto tr73;
+		case 50: goto tr91;
+		case 95: goto tr73;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr90;
 st39:
 	if ( ++p == pe )
 		goto _test_eof39;
 case 39:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 114: goto st40;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 101: goto st40;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st40:
 	if ( ++p == pe )
 		goto _test_eof40;
 case 40:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 97: goto st41;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 114: goto st41;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
-		if ( 98 <= (*p) && (*p) <= 122 )
-			goto tr72;
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st41:
 	if ( ++p == pe )
 		goto _test_eof41;
 case 41:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 103: goto st42;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 97: goto st42;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
-		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+		if ( 98 <= (*p) && (*p) <= 122 )
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st42:
 	if ( ++p == pe )
 		goto _test_eof42;
 case 42:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 101: goto tr95;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 103: goto st43;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st43:
 	if ( ++p == pe )
 		goto _test_eof43;
 case 43:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 111: goto st44;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 101: goto tr96;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st44:
 	if ( ++p == pe )
 		goto _test_eof44;
 case 44:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
+		case 46: goto tr73;
+		case 95: goto tr73;
 		case 111: goto st45;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st45:
 	if ( ++p == pe )
 		goto _test_eof45;
 case 45:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 108: goto tr98;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 111: goto st46;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st46:
 	if ( ++p == pe )
 		goto _test_eof46;
 case 46:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 98: goto st47;
-		case 111: goto st49;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 108: goto tr99;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st47:
 	if ( ++p == pe )
 		goto _test_eof47;
 case 47:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 114: goto st48;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 98: goto st48;
+		case 111: goto st50;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st48:
 	if ( ++p == pe )
 		goto _test_eof48;
 case 48:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 116: goto tr102;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 114: goto st49;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st49:
 	if ( ++p == pe )
 		goto _test_eof49;
 case 49:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 115: goto st50;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 116: goto tr103;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st50:
 	if ( ++p == pe )
 		goto _test_eof50;
 case 50:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 104: goto tr105;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 115: goto st51;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr104;
+		goto tr73;
+	goto tr72;
 st51:
 	if ( ++p == pe )
 		goto _test_eof51;
 case 51:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 101: goto st52;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 104: goto tr106;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr105;
 st52:
 	if ( ++p == pe )
 		goto _test_eof52;
 case 52:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 103: goto st53;
-		case 108: goto st58;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 101: goto st53;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st53:
 	if ( ++p == pe )
 		goto _test_eof53;
 case 53:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 84: goto st54;
-		case 95: goto tr72;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 103: goto st54;
+		case 108: goto st59;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st54:
 	if ( ++p == pe )
 		goto _test_eof54;
 case 54:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 111: goto st55;
+		case 46: goto tr73;
+		case 84: goto st55;
+		case 95: goto tr73;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st55:
 	if ( ++p == pe )
 		goto _test_eof55;
 case 55:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 82: goto st56;
-		case 95: goto tr72;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 111: goto st56;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st56:
 	if ( ++p == pe )
 		goto _test_eof56;
 case 56:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 97: goto st57;
+		case 46: goto tr73;
+		case 82: goto st57;
+		case 95: goto tr73;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
-		if ( 98 <= (*p) && (*p) <= 122 )
-			goto tr72;
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st57:
 	if ( ++p == pe )
 		goto _test_eof57;
 case 57:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 100: goto tr113;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 97: goto st58;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
-		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+		if ( 98 <= (*p) && (*p) <= 122 )
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st58:
 	if ( ++p == pe )
 		goto _test_eof58;
 case 58:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 116: goto st59;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 100: goto tr114;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st59:
 	if ( ++p == pe )
 		goto _test_eof59;
 case 59:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 97: goto st60;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 116: goto st60;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
-		if ( 98 <= (*p) && (*p) <= 122 )
-			goto tr72;
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st60:
 	if ( ++p == pe )
 		goto _test_eof60;
 case 60:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 84: goto tr116;
-		case 95: goto tr72;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 97: goto st61;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
-		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+		if ( 98 <= (*p) && (*p) <= 122 )
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st61:
 	if ( ++p == pe )
 		goto _test_eof61;
 case 61:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 120: goto st62;
+		case 46: goto tr73;
+		case 84: goto tr117;
+		case 95: goto tr73;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st62:
 	if ( ++p == pe )
 		goto _test_eof62;
 case 62:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 112: goto tr118;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 120: goto st63;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st63:
 	if ( ++p == pe )
 		goto _test_eof63;
 case 63:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 97: goto st64;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 112: goto tr119;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
-		if ( 98 <= (*p) && (*p) <= 122 )
-			goto tr72;
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st64:
 	if ( ++p == pe )
 		goto _test_eof64;
 case 64:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 108: goto st65;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 97: goto st65;
+		case 110: goto tr121;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
-		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+		if ( 98 <= (*p) && (*p) <= 122 )
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st65:
 	if ( ++p == pe )
 		goto _test_eof65;
 case 65:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 115: goto st66;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 108: goto st66;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st66:
 	if ( ++p == pe )
 		goto _test_eof66;
 case 66:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 101: goto tr122;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 115: goto st67;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st67:
 	if ( ++p == pe )
 		goto _test_eof67;
 case 67:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 111: goto st68;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 101: goto tr124;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
+tr121:
+#line 1 "NONE"
+	{te = p+1;}
+	goto st68;
 st68:
 	if ( ++p == pe )
 		goto _test_eof68;
 case 68:
+#line 2036 "fieldExprScanner.cc"
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 103: goto st69;
+		case 46: goto tr73;
+		case 58: goto st8;
+		case 95: goto tr73;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
+st8:
+	if ( ++p == pe )
+		goto _test_eof8;
+case 8:
+	if ( (*p) == 95 )
+		goto st25;
+	if ( (*p) > 90 ) {
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto st25;
+	} else if ( (*p) >= 65 )
+		goto st25;
+	goto tr9;
 st69:
 	if ( ++p == pe )
 		goto _test_eof69;
 case 69:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 49: goto st70;
-		case 95: goto tr72;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 111: goto st70;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr125;
+		goto tr73;
+	goto tr72;
 st70:
 	if ( ++p == pe )
 		goto _test_eof70;
 case 70:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 48: goto tr127;
-		case 95: goto tr72;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 103: goto st71;
 	}
 	if ( (*p) < 65 ) {
-		if ( 49 <= (*p) && (*p) <= 57 )
-			goto tr72;
+		if ( 48 <= (*p) && (*p) <= 57 )
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st71:
 	if ( ++p == pe )
 		goto _test_eof71;
 case 71:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 97: goto st72;
-		case 105: goto st76;
+		case 46: goto tr73;
+		case 49: goto st72;
+		case 95: goto tr73;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
-		if ( 98 <= (*p) && (*p) <= 122 )
-			goto tr72;
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr128;
 st72:
 	if ( ++p == pe )
 		goto _test_eof72;
 case 72:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 103: goto st73;
-		case 120: goto tr131;
+		case 46: goto tr73;
+		case 48: goto tr130;
+		case 95: goto tr73;
 	}
 	if ( (*p) < 65 ) {
-		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+		if ( 49 <= (*p) && (*p) <= 57 )
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st73:
 	if ( ++p == pe )
 		goto _test_eof73;
 case 73:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 83: goto st74;
-		case 95: goto tr72;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 97: goto st74;
+		case 105: goto st78;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
-		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+		if ( 98 <= (*p) && (*p) <= 122 )
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr132;
+		goto tr73;
+	goto tr72;
 st74:
 	if ( ++p == pe )
 		goto _test_eof74;
 case 74:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 113: goto st75;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 103: goto st75;
+		case 120: goto tr134;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st75:
 	if ( ++p == pe )
 		goto _test_eof75;
 case 75:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 114: goto tr135;
+		case 46: goto tr73;
+		case 83: goto st76;
+		case 95: goto tr73;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr135;
 st76:
 	if ( ++p == pe )
 		goto _test_eof76;
 case 76:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 110: goto tr136;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 113: goto st77;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st77:
 	if ( ++p == pe )
 		goto _test_eof77;
 case 77:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 101: goto st78;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 114: goto tr138;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st78:
 	if ( ++p == pe )
 		goto _test_eof78;
 case 78:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 103: goto st79;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 110: goto tr139;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st79:
 	if ( ++p == pe )
 		goto _test_eof79;
 case 79:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 48: goto tr140;
-		case 95: goto tr72;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 101: goto st80;
 	}
 	if ( (*p) < 65 ) {
-		if ( 49 <= (*p) && (*p) <= 57 )
-			goto tr72;
+		if ( 48 <= (*p) && (*p) <= 57 )
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr139;
+		goto tr73;
+	goto tr72;
 st80:
 	if ( ++p == pe )
 		goto _test_eof80;
 case 80:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 105: goto tr141;
-		case 111: goto st81;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 103: goto st81;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st81:
 	if ( ++p == pe )
 		goto _test_eof81;
 case 81:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 115: goto st82;
-		case 119: goto tr144;
+		case 46: goto tr73;
+		case 48: goto tr143;
+		case 95: goto tr73;
 	}
 	if ( (*p) < 65 ) {
-		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+		if ( 49 <= (*p) && (*p) <= 57 )
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr142;
 st82:
 	if ( ++p == pe )
 		goto _test_eof82;
 case 82:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 48: goto tr146;
-		case 95: goto tr72;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 105: goto tr144;
+		case 111: goto st83;
 	}
 	if ( (*p) < 65 ) {
-		if ( 49 <= (*p) && (*p) <= 57 )
-			goto tr72;
+		if ( 48 <= (*p) && (*p) <= 57 )
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr145;
+		goto tr73;
+	goto tr72;
 st83:
 	if ( ++p == pe )
 		goto _test_eof83;
 case 83:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 97: goto st84;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 115: goto st84;
+		case 119: goto tr147;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
-		if ( 98 <= (*p) && (*p) <= 122 )
-			goto tr72;
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st84:
 	if ( ++p == pe )
 		goto _test_eof84;
 case 84:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 100: goto st85;
-		case 110: goto st90;
+		case 46: goto tr73;
+		case 48: goto tr149;
+		case 95: goto tr73;
 	}
 	if ( (*p) < 65 ) {
-		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+		if ( 49 <= (*p) && (*p) <= 57 )
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr148;
 st85:
 	if ( ++p == pe )
 		goto _test_eof85;
 case 85:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 84: goto st86;
-		case 95: goto tr72;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 97: goto st86;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
-		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+		if ( 98 <= (*p) && (*p) <= 122 )
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st86:
 	if ( ++p == pe )
 		goto _test_eof86;
 case 86:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 111: goto st87;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 100: goto st87;
+		case 110: goto st92;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st87:
 	if ( ++p == pe )
 		goto _test_eof87;
 case 87:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 68: goto st88;
-		case 95: goto tr72;
+		case 46: goto tr73;
+		case 84: goto st88;
+		case 95: goto tr73;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st88:
 	if ( ++p == pe )
 		goto _test_eof88;
 case 88:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 101: goto st89;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 111: goto st89;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st89:
 	if ( ++p == pe )
 		goto _test_eof89;
 case 89:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 103: goto tr154;
+		case 46: goto tr73;
+		case 68: goto st90;
+		case 95: goto tr73;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st90:
 	if ( ++p == pe )
 		goto _test_eof90;
 case 90:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 100: goto tr155;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 101: goto st91;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st91:
 	if ( ++p == pe )
 		goto _test_eof91;
 case 91:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 105: goto st92;
-		case 112: goto st95;
-		case 113: goto st108;
-		case 117: goto st110;
-		case 121: goto st111;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 103: goto tr157;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st92:
 	if ( ++p == pe )
 		goto _test_eof92;
 case 92:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 103: goto st93;
-		case 110: goto st94;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 100: goto tr158;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st93:
 	if ( ++p == pe )
 		goto _test_eof93;
 case 93:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 110: goto tr163;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 105: goto st94;
+		case 112: goto st97;
+		case 113: goto st110;
+		case 117: goto st112;
+		case 121: goto st113;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st94:
 	if ( ++p == pe )
 		goto _test_eof94;
 case 94:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 104: goto tr165;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 103: goto st95;
+		case 110: goto st96;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr164;
+		goto tr73;
+	goto tr72;
 st95:
 	if ( ++p == pe )
 		goto _test_eof95;
 case 95:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 104: goto st96;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 110: goto tr166;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st96:
 	if ( ++p == pe )
 		goto _test_eof96;
 case 96:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 101: goto st97;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 104: goto tr168;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr167;
 st97:
 	if ( ++p == pe )
 		goto _test_eof97;
 case 97:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 114: goto st98;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 104: goto st98;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st98:
 	if ( ++p == pe )
 		goto _test_eof98;
 case 98:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 105: goto st99;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 101: goto st99;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st99:
 	if ( ++p == pe )
 		goto _test_eof99;
 case 99:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 99: goto st100;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 114: goto st100;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st100:
 	if ( ++p == pe )
 		goto _test_eof100;
 case 100:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 97: goto st101;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 105: goto st101;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
-		if ( 98 <= (*p) && (*p) <= 122 )
-			goto tr72;
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st101:
 	if ( ++p == pe )
 		goto _test_eof101;
 case 101:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 108: goto st102;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 99: goto st102;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st102:
 	if ( ++p == pe )
 		goto _test_eof102;
 case 102:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 84: goto st103;
-		case 95: goto tr72;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 97: goto st103;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
-		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+		if ( 98 <= (*p) && (*p) <= 122 )
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st103:
 	if ( ++p == pe )
 		goto _test_eof103;
 case 103:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 101: goto st104;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 108: goto st104;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st104:
 	if ( ++p == pe )
 		goto _test_eof104;
 case 104:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 110: goto st105;
+		case 46: goto tr73;
+		case 84: goto st105;
+		case 95: goto tr73;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st105:
 	if ( ++p == pe )
 		goto _test_eof105;
 case 105:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 115: goto st106;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 101: goto st106;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st106:
 	if ( ++p == pe )
 		goto _test_eof106;
 case 106:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 111: goto st107;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 110: goto st107;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st107:
 	if ( ++p == pe )
 		goto _test_eof107;
 case 107:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 114: goto tr178;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 115: goto st108;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st108:
 	if ( ++p == pe )
 		goto _test_eof108;
 case 108:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 114: goto st109;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 111: goto st109;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st109:
 	if ( ++p == pe )
 		goto _test_eof109;
 case 109:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 116: goto tr181;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 114: goto tr181;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr180;
+		goto tr73;
+	goto tr72;
 st110:
 	if ( ++p == pe )
 		goto _test_eof110;
 case 110:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 109: goto tr182;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 114: goto st111;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st111:
 	if ( ++p == pe )
 		goto _test_eof111;
 case 111:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 109: goto st112;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 116: goto tr184;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr183;
 st112:
 	if ( ++p == pe )
 		goto _test_eof112;
 case 112:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 109: goto st113;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 109: goto tr185;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st113:
 	if ( ++p == pe )
 		goto _test_eof113;
 case 113:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 84: goto st114;
-		case 95: goto tr72;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 109: goto st114;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st114:
 	if ( ++p == pe )
 		goto _test_eof114;
 case 114:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 101: goto st115;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 109: goto st115;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st115:
 	if ( ++p == pe )
 		goto _test_eof115;
 case 115:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 110: goto st116;
+		case 46: goto tr73;
+		case 84: goto st116;
+		case 95: goto tr73;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st116:
 	if ( ++p == pe )
 		goto _test_eof116;
 case 116:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 115: goto st117;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 101: goto st117;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st117:
 	if ( ++p == pe )
 		goto _test_eof117;
 case 117:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 111: goto st118;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 110: goto st118;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st118:
 	if ( ++p == pe )
 		goto _test_eof118;
 case 118:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 114: goto tr190;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 115: goto st119;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st119:
 	if ( ++p == pe )
 		goto _test_eof119;
 case 119:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 97: goto st120;
-		case 101: goto st122;
-		case 105: goto st127;
-		case 114: goto st129;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 111: goto st120;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
-		if ( 98 <= (*p) && (*p) <= 122 )
-			goto tr72;
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st120:
 	if ( ++p == pe )
 		goto _test_eof120;
 case 120:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 110: goto st121;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 114: goto tr193;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st121:
 	if ( ++p == pe )
 		goto _test_eof121;
 case 121:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 104: goto tr197;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 97: goto st122;
+		case 101: goto st124;
+		case 105: goto st129;
+		case 114: goto st131;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
-		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+		if ( 98 <= (*p) && (*p) <= 122 )
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr196;
+		goto tr73;
+	goto tr72;
 st122:
 	if ( ++p == pe )
 		goto _test_eof122;
 case 122:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
+		case 46: goto tr73;
+		case 95: goto tr73;
 		case 110: goto st123;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st123:
 	if ( ++p == pe )
 		goto _test_eof123;
 case 123:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 115: goto st124;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 104: goto tr200;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr199;
 st124:
 	if ( ++p == pe )
 		goto _test_eof124;
 case 124:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 111: goto st125;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 110: goto st125;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st125:
 	if ( ++p == pe )
 		goto _test_eof125;
 case 125:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 114: goto tr201;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 115: goto st126;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
-tr201:
-#line 1 "NONE"
-	{te = p+1;}
-	goto st126;
+		goto tr73;
+	goto tr72;
 st126:
 	if ( ++p == pe )
 		goto _test_eof126;
 case 126:
-#line 3085 "fieldExprScanner.cc"
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 58: goto st8;
-		case 95: goto tr72;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 111: goto st127;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr202;
-st8:
-	if ( ++p == pe )
-		goto _test_eof8;
-case 8:
-	if ( (*p) == 58 )
-		goto st9;
-	goto tr9;
-st9:
-	if ( ++p == pe )
-		goto _test_eof9;
-case 9:
-	if ( (*p) == 73 )
-		goto tr11;
-	goto tr9;
+		goto tr73;
+	goto tr72;
 st127:
 	if ( ++p == pe )
 		goto _test_eof127;
 case 127:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 109: goto st128;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 114: goto tr204;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
+tr204:
+#line 1 "NONE"
+	{te = p+1;}
+	goto st128;
 st128:
 	if ( ++p == pe )
 		goto _test_eof128;
 case 128:
+#line 3146 "fieldExprScanner.cc"
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 101: goto tr205;
+		case 46: goto tr73;
+		case 58: goto st9;
+		case 95: goto tr73;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr205;
+st9:
+	if ( ++p == pe )
+		goto _test_eof9;
+case 9:
+	if ( (*p) == 58 )
+		goto st10;
+	goto tr11;
+st10:
+	if ( ++p == pe )
+		goto _test_eof10;
+case 10:
+	if ( (*p) == 73 )
+		goto tr13;
+	goto tr11;
 st129:
 	if ( ++p == pe )
 		goto _test_eof129;
 case 129:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 117: goto st130;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 109: goto st130;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st130:
 	if ( ++p == pe )
 		goto _test_eof130;
 case 130:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 101: goto tr207;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 101: goto tr208;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st131:
 	if ( ++p == pe )
 		goto _test_eof131;
 case 131:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 101: goto st132;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 117: goto st132;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st132:
 	if ( ++p == pe )
 		goto _test_eof132;
 case 132:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 99: goto st133;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 101: goto tr210;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st133:
 	if ( ++p == pe )
 		goto _test_eof133;
 case 133:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 116: goto st134;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 101: goto st134;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st134:
 	if ( ++p == pe )
 		goto _test_eof134;
 case 134:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 111: goto st135;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 99: goto st135;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
+		goto tr73;
+	goto tr72;
 st135:
 	if ( ++p == pe )
 		goto _test_eof135;
 case 135:
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 95: goto tr72;
-		case 114: goto tr212;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 116: goto st136;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr71;
-tr212:
-#line 1 "NONE"
-	{te = p+1;}
-	goto st136;
+		goto tr73;
+	goto tr72;
 st136:
 	if ( ++p == pe )
 		goto _test_eof136;
 case 136:
-#line 3284 "fieldExprScanner.cc"
 	switch( (*p) ) {
-		case 46: goto tr72;
-		case 58: goto st10;
-		case 95: goto tr72;
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 111: goto st137;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr72;
+			goto tr73;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr72;
+			goto tr73;
 	} else
-		goto tr72;
-	goto tr213;
-st10:
+		goto tr73;
+	goto tr72;
+st137:
 	if ( ++p == pe )
-		goto _test_eof10;
-case 10:
-	if ( (*p) == 58 )
-		goto st11;
-	goto tr12;
+		goto _test_eof137;
+case 137:
+	switch( (*p) ) {
+		case 46: goto tr73;
+		case 95: goto tr73;
+		case 114: goto tr215;
+	}
+	if ( (*p) < 65 ) {
+		if ( 48 <= (*p) && (*p) <= 57 )
+			goto tr73;
+	} else if ( (*p) > 90 ) {
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto tr73;
+	} else
+		goto tr73;
+	goto tr72;
+tr215:
+#line 1 "NONE"
+	{te = p+1;}
+	goto st138;
+st138:
+	if ( ++p == pe )
+		goto _test_eof138;
+case 138:
+#line 3345 "fieldExprScanner.cc"
+	switch( (*p) ) {
+		case 46: goto tr73;
+		case 58: goto st11;
+		case 95: goto tr73;
+	}
+	if ( (*p) < 65 ) {
+		if ( 48 <= (*p) && (*p) <= 57 )
+			goto tr73;
+	} else if ( (*p) > 90 ) {
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto tr73;
+	} else
+		goto tr73;
+	goto tr216;
 st11:
 	if ( ++p == pe )
 		goto _test_eof11;
 case 11:
-	switch( (*p) ) {
-		case 120: goto tr14;
-		case 121: goto tr15;
-		case 122: goto tr16;
-	}
-	goto tr12;
+	if ( (*p) == 58 )
+		goto st12;
+	goto tr14;
 st12:
 	if ( ++p == pe )
 		goto _test_eof12;
 case 12:
+	switch( (*p) ) {
+		case 120: goto tr16;
+		case 121: goto tr17;
+		case 122: goto tr18;
+	}
+	goto tr14;
+st13:
+	if ( ++p == pe )
+		goto _test_eof13;
+case 13:
 	if ( (*p) == 124 )
-		goto tr17;
+		goto tr19;
 	goto st0;
 	}
-	_test_eof13: cs = 13; goto _test_eof; 
 	_test_eof14: cs = 14; goto _test_eof; 
 	_test_eof15: cs = 15; goto _test_eof; 
+	_test_eof16: cs = 16; goto _test_eof; 
 	_test_eof1: cs = 1; goto _test_eof; 
 	_test_eof2: cs = 2; goto _test_eof; 
-	_test_eof16: cs = 16; goto _test_eof; 
+	_test_eof17: cs = 17; goto _test_eof; 
 	_test_eof3: cs = 3; goto _test_eof; 
 	_test_eof4: cs = 4; goto _test_eof; 
-	_test_eof17: cs = 17; goto _test_eof; 
 	_test_eof18: cs = 18; goto _test_eof; 
+	_test_eof19: cs = 19; goto _test_eof; 
 	_test_eof5: cs = 5; goto _test_eof; 
 	_test_eof6: cs = 6; goto _test_eof; 
-	_test_eof19: cs = 19; goto _test_eof; 
 	_test_eof20: cs = 20; goto _test_eof; 
 	_test_eof21: cs = 21; goto _test_eof; 
 	_test_eof22: cs = 22; goto _test_eof; 
-	_test_eof7: cs = 7; goto _test_eof; 
 	_test_eof23: cs = 23; goto _test_eof; 
+	_test_eof7: cs = 7; goto _test_eof; 
 	_test_eof24: cs = 24; goto _test_eof; 
 	_test_eof25: cs = 25; goto _test_eof; 
 	_test_eof26: cs = 26; goto _test_eof; 
@@ -3383,6 +3443,7 @@ case 12:
 	_test_eof66: cs = 66; goto _test_eof; 
 	_test_eof67: cs = 67; goto _test_eof; 
 	_test_eof68: cs = 68; goto _test_eof; 
+	_test_eof8: cs = 8; goto _test_eof; 
 	_test_eof69: cs = 69; goto _test_eof; 
 	_test_eof70: cs = 70; goto _test_eof; 
 	_test_eof71: cs = 71; goto _test_eof; 
@@ -3441,10 +3502,10 @@ case 12:
 	_test_eof124: cs = 124; goto _test_eof; 
 	_test_eof125: cs = 125; goto _test_eof; 
 	_test_eof126: cs = 126; goto _test_eof; 
-	_test_eof8: cs = 8; goto _test_eof; 
-	_test_eof9: cs = 9; goto _test_eof; 
 	_test_eof127: cs = 127; goto _test_eof; 
 	_test_eof128: cs = 128; goto _test_eof; 
+	_test_eof9: cs = 9; goto _test_eof; 
+	_test_eof10: cs = 10; goto _test_eof; 
 	_test_eof129: cs = 129; goto _test_eof; 
 	_test_eof130: cs = 130; goto _test_eof; 
 	_test_eof131: cs = 131; goto _test_eof; 
@@ -3453,150 +3514,154 @@ case 12:
 	_test_eof134: cs = 134; goto _test_eof; 
 	_test_eof135: cs = 135; goto _test_eof; 
 	_test_eof136: cs = 136; goto _test_eof; 
-	_test_eof10: cs = 10; goto _test_eof; 
+	_test_eof137: cs = 137; goto _test_eof; 
+	_test_eof138: cs = 138; goto _test_eof; 
 	_test_eof11: cs = 11; goto _test_eof; 
 	_test_eof12: cs = 12; goto _test_eof; 
+	_test_eof13: cs = 13; goto _test_eof; 
 
 	_test_eof: {}
 	if ( p == eof )
 	{
 	switch ( cs ) {
-	case 14: goto tr56;
 	case 15: goto tr57;
-	case 16: goto tr59;
-	case 17: goto tr61;
-	case 18: goto tr64;
+	case 16: goto tr58;
+	case 17: goto tr60;
+	case 18: goto tr62;
+	case 19: goto tr65;
 	case 5: goto tr5;
 	case 6: goto tr5;
-	case 19: goto tr64;
-	case 20: goto tr66;
-	case 21: goto tr64;
-	case 22: goto tr67;
-	case 23: goto tr69;
-	case 24: goto tr71;
-	case 25: goto tr73;
-	case 26: goto tr71;
-	case 27: goto tr71;
-	case 28: goto tr71;
-	case 29: goto tr71;
-	case 30: goto tr71;
-	case 31: goto tr71;
-	case 32: goto tr71;
-	case 33: goto tr71;
-	case 34: goto tr71;
-	case 35: goto tr71;
-	case 36: goto tr71;
-	case 37: goto tr89;
-	case 38: goto tr71;
-	case 39: goto tr71;
-	case 40: goto tr71;
-	case 41: goto tr71;
-	case 42: goto tr71;
-	case 43: goto tr71;
-	case 44: goto tr71;
-	case 45: goto tr71;
-	case 46: goto tr71;
-	case 47: goto tr71;
-	case 48: goto tr71;
-	case 49: goto tr71;
-	case 50: goto tr104;
-	case 51: goto tr71;
-	case 52: goto tr71;
-	case 53: goto tr71;
-	case 54: goto tr71;
-	case 55: goto tr71;
-	case 56: goto tr71;
-	case 57: goto tr71;
-	case 58: goto tr71;
-	case 59: goto tr71;
-	case 60: goto tr71;
-	case 61: goto tr71;
-	case 62: goto tr71;
-	case 63: goto tr71;
-	case 64: goto tr71;
-	case 65: goto tr71;
-	case 66: goto tr71;
-	case 67: goto tr71;
-	case 68: goto tr71;
-	case 69: goto tr125;
-	case 70: goto tr71;
-	case 71: goto tr71;
-	case 72: goto tr71;
-	case 73: goto tr132;
-	case 74: goto tr71;
-	case 75: goto tr71;
-	case 76: goto tr71;
-	case 77: goto tr71;
-	case 78: goto tr71;
-	case 79: goto tr139;
-	case 80: goto tr71;
-	case 81: goto tr71;
-	case 82: goto tr145;
-	case 83: goto tr71;
-	case 84: goto tr71;
-	case 85: goto tr71;
-	case 86: goto tr71;
-	case 87: goto tr71;
-	case 88: goto tr71;
-	case 89: goto tr71;
-	case 90: goto tr71;
-	case 91: goto tr71;
-	case 92: goto tr71;
-	case 93: goto tr71;
-	case 94: goto tr164;
-	case 95: goto tr71;
-	case 96: goto tr71;
-	case 97: goto tr71;
-	case 98: goto tr71;
-	case 99: goto tr71;
-	case 100: goto tr71;
-	case 101: goto tr71;
-	case 102: goto tr71;
-	case 103: goto tr71;
-	case 104: goto tr71;
-	case 105: goto tr71;
-	case 106: goto tr71;
-	case 107: goto tr71;
-	case 108: goto tr71;
-	case 109: goto tr180;
-	case 110: goto tr71;
-	case 111: goto tr71;
-	case 112: goto tr71;
-	case 113: goto tr71;
-	case 114: goto tr71;
-	case 115: goto tr71;
-	case 116: goto tr71;
-	case 117: goto tr71;
-	case 118: goto tr71;
-	case 119: goto tr71;
-	case 120: goto tr71;
-	case 121: goto tr196;
-	case 122: goto tr71;
-	case 123: goto tr71;
-	case 124: goto tr71;
-	case 125: goto tr71;
-	case 126: goto tr202;
+	case 20: goto tr65;
+	case 21: goto tr67;
+	case 22: goto tr65;
+	case 23: goto tr68;
+	case 24: goto tr70;
+	case 25: goto tr72;
+	case 26: goto tr74;
+	case 27: goto tr72;
+	case 28: goto tr72;
+	case 29: goto tr72;
+	case 30: goto tr72;
+	case 31: goto tr72;
+	case 32: goto tr72;
+	case 33: goto tr72;
+	case 34: goto tr72;
+	case 35: goto tr72;
+	case 36: goto tr72;
+	case 37: goto tr72;
+	case 38: goto tr90;
+	case 39: goto tr72;
+	case 40: goto tr72;
+	case 41: goto tr72;
+	case 42: goto tr72;
+	case 43: goto tr72;
+	case 44: goto tr72;
+	case 45: goto tr72;
+	case 46: goto tr72;
+	case 47: goto tr72;
+	case 48: goto tr72;
+	case 49: goto tr72;
+	case 50: goto tr72;
+	case 51: goto tr105;
+	case 52: goto tr72;
+	case 53: goto tr72;
+	case 54: goto tr72;
+	case 55: goto tr72;
+	case 56: goto tr72;
+	case 57: goto tr72;
+	case 58: goto tr72;
+	case 59: goto tr72;
+	case 60: goto tr72;
+	case 61: goto tr72;
+	case 62: goto tr72;
+	case 63: goto tr72;
+	case 64: goto tr72;
+	case 65: goto tr72;
+	case 66: goto tr72;
+	case 67: goto tr72;
+	case 68: goto tr72;
 	case 8: goto tr9;
-	case 9: goto tr9;
-	case 127: goto tr71;
-	case 128: goto tr71;
-	case 129: goto tr71;
-	case 130: goto tr71;
-	case 131: goto tr71;
-	case 132: goto tr71;
-	case 133: goto tr71;
-	case 134: goto tr71;
-	case 135: goto tr71;
-	case 136: goto tr213;
-	case 10: goto tr12;
-	case 11: goto tr12;
+	case 69: goto tr72;
+	case 70: goto tr72;
+	case 71: goto tr128;
+	case 72: goto tr72;
+	case 73: goto tr72;
+	case 74: goto tr72;
+	case 75: goto tr135;
+	case 76: goto tr72;
+	case 77: goto tr72;
+	case 78: goto tr72;
+	case 79: goto tr72;
+	case 80: goto tr72;
+	case 81: goto tr142;
+	case 82: goto tr72;
+	case 83: goto tr72;
+	case 84: goto tr148;
+	case 85: goto tr72;
+	case 86: goto tr72;
+	case 87: goto tr72;
+	case 88: goto tr72;
+	case 89: goto tr72;
+	case 90: goto tr72;
+	case 91: goto tr72;
+	case 92: goto tr72;
+	case 93: goto tr72;
+	case 94: goto tr72;
+	case 95: goto tr72;
+	case 96: goto tr167;
+	case 97: goto tr72;
+	case 98: goto tr72;
+	case 99: goto tr72;
+	case 100: goto tr72;
+	case 101: goto tr72;
+	case 102: goto tr72;
+	case 103: goto tr72;
+	case 104: goto tr72;
+	case 105: goto tr72;
+	case 106: goto tr72;
+	case 107: goto tr72;
+	case 108: goto tr72;
+	case 109: goto tr72;
+	case 110: goto tr72;
+	case 111: goto tr183;
+	case 112: goto tr72;
+	case 113: goto tr72;
+	case 114: goto tr72;
+	case 115: goto tr72;
+	case 116: goto tr72;
+	case 117: goto tr72;
+	case 118: goto tr72;
+	case 119: goto tr72;
+	case 120: goto tr72;
+	case 121: goto tr72;
+	case 122: goto tr72;
+	case 123: goto tr199;
+	case 124: goto tr72;
+	case 125: goto tr72;
+	case 126: goto tr72;
+	case 127: goto tr72;
+	case 128: goto tr205;
+	case 9: goto tr11;
+	case 10: goto tr11;
+	case 129: goto tr72;
+	case 130: goto tr72;
+	case 131: goto tr72;
+	case 132: goto tr72;
+	case 133: goto tr72;
+	case 134: goto tr72;
+	case 135: goto tr72;
+	case 136: goto tr72;
+	case 137: goto tr72;
+	case 138: goto tr216;
+	case 11: goto tr14;
+	case 12: goto tr14;
 	}
 	}
 
 	_out: {}
 	}
 
-#line 568 "fieldExprScanner.rl"
+#line 588 "fieldExprScanner.rl"
    /* ^^^ FSM execution here ^^^ */;
 
     if (0 == cs)
diff --git a/src/OpenFOAM/expressions/fields/fieldExprScanner.rl b/src/OpenFOAM/expressions/fields/fieldExprScanner.rl
index 4fded905430aa899a313b8c543338b37b6c48bb8..8511398817bb046d374058492e110ec4af08773b 100644
--- a/src/OpenFOAM/expressions/fields/fieldExprScanner.rl
+++ b/src/OpenFOAM/expressions/fields/fieldExprScanner.rl
@@ -219,12 +219,16 @@ static int driverTokenType
 
     decimal = ((digit* '.' digit+) | (digit+ '.'?)) ;
     number  = ((digit+ | decimal) ([Ee][\-+]? digit+)?) ;
-    ident   = ((alpha|'_') . ((alnum|[._])**)) ;
+    identifier = ((alpha|'_') . ((alnum|[._])**)) ;
     dquoted = '"' [^\"]+ '"' ;
     squoted = "'" [^\']+ "'" ;
 
+    ## Allow 'fn:' prefix for function identifier
+    ident = ('fn:')? identifier ;
 
+    ## ===========
     ## The scanner
+    ## ===========
     main := |*
         space*;
 
@@ -431,6 +435,22 @@ bool Foam::expressions::fieldExpr::scanner::dispatch_ident
 
         do
         {
+            #undef  doLocalCode
+            #define doLocalCode(TokType, Type)                      \
+            if (driver_.isFunction<Type>(funcName))                 \
+            {                                                       \
+                ident = std::move(funcName);                        \
+                tokType = TokType;                                  \
+                break;                                              \
+            }
+
+            #ifdef TOK_SCALAR_FUNCTION_ID
+            doLocalCode(TOK_SCALAR_FUNCTION_ID, scalar);
+            #endif
+            #ifdef TOK_VECTOR_FUNCTION_ID
+            doLocalCode(TOK_VECTOR_FUNCTION_ID, vector);
+            #endif
+            #undef doLocalCode
         }
         while (false);
     }
diff --git a/src/finiteVolume/expressions/base/fvExprDriverIO.C b/src/finiteVolume/expressions/base/fvExprDriverIO.C
index 33c5f1dff6c601f4c143148ce347b573368d92f7..fc24a89f4fdbcdc066e2f359357f601eaca2181e 100644
--- a/src/finiteVolume/expressions/base/fvExprDriverIO.C
+++ b/src/finiteVolume/expressions/base/fvExprDriverIO.C
@@ -251,9 +251,8 @@ Foam::Ostream& Foam::expressions::fvExprDriver::writeCommon
         os.writeEntry("globalScopes", globalScopes_);
     }
 
-    // writeTable(os, "timelines", lines_);
-    // writeTable(os, "lookuptables", lookup_);
-    // writeTable(os, "lookuptables2D", lookup2D_);
+    // Write "functions<scalar>" ...
+    writeFunctions(os);
 
     return os;
 }
diff --git a/src/finiteVolume/expressions/patch/patchExprLemonParser.lyy-m4 b/src/finiteVolume/expressions/patch/patchExprLemonParser.lyy-m4
index 0ebd48bc6b3a1cc4c7663979d6ed6f9115de19ff..71b223566900de2c000b02000fcc333cf99480d3 100644
--- a/src/finiteVolume/expressions/patch/patchExprLemonParser.lyy-m4
+++ b/src/finiteVolume/expressions/patch/patchExprLemonParser.lyy-m4
@@ -139,8 +139,11 @@ svalue (lhs) ::= DELTA_T LPAREN RPAREN . { lhs = driver->deltaT(); }
 
 svalue (lhs) ::= SCALAR_FUNCTION_ID (name) LPAREN RPAREN .
 {
-    driver->reportFatal("Not implemented: " + make_obj(name.name_));
-    lhs = 0;
+    lhs = driver->getFunctionValue<Foam::scalar>
+    (
+        make_obj(name.name_),
+        driver->timeValue()
+    );
 }
 
 /*---------------------------------------------------------------------------*\
@@ -158,8 +161,12 @@ vvalue (lhs) ::= VECTOR_VALUE (tok) .
 
 vvalue (lhs) ::= VECTOR_FUNCTION_ID (name) LPAREN RPAREN .
 {
-    driver->reportFatal("Not implemented: " + make_obj(name.name_));
-    lhs = new Foam::vector(0,0,0);
+    auto val = driver->getFunctionValue<Foam::vector>
+    (
+        make_obj(name.name_),
+        driver->timeValue()
+    );
+    lhs = new Foam::vector(val);
 }
 
 
@@ -221,8 +228,12 @@ _target_ (lhs) ::= RAND LPAREN NUMBER (seed) RPAREN.
 _target_ (lhs) ::= SCALAR_FUNCTION_ID (name) LPAREN _scalar_arg_ (values) RPAREN.
 {
     lhs = _new_target_;
-    (void) make_obj(values);
-    driver->reportFatal("Not implemented: " + make_obj(name.name_));
+    driver->fillFunctionValues<_value_type_>
+    (
+        *lhs,
+        make_obj(name.name_),
+        make_obj(values)
+    );
 }
 
 
@@ -253,8 +264,12 @@ rules_vector_functions()
 _target_ (lhs) ::= VECTOR_FUNCTION_ID (name) LPAREN _scalar_arg_ (values) RPAREN.
 {
     lhs = _new_target_;
-    (void) make_obj(values);
-    driver->reportFatal("Not implemented: " + make_obj(name.name_));
+    driver->fillFunctionValues<_value_type_>
+    (
+        *lhs,
+        make_obj(name.name_),
+        make_obj(values)
+    );
 }
 
 
@@ -397,8 +412,12 @@ rule_binary_func(_target_, _target_, _target_, HYPOT, Foam::hypot)
 _target_ (lhs) ::= SCALAR_FUNCTION_ID (name) LPAREN _scalar_arg_ (values) RPAREN.
 {
     lhs = _new_target_;
-    (void) make_obj(values);
-    driver->reportFatal("Not implemented: " + make_obj(name.name_));
+    driver->fillFunctionValues<_value_type_>
+    (
+        *lhs,
+        make_obj(name.name_),
+        make_obj(values)
+    );
 }
 
 
@@ -425,8 +444,12 @@ rules_vector_functions()
 _target_ (lhs) ::= VECTOR_FUNCTION_ID (name) LPAREN _scalar_arg_ (values) RPAREN.
 {
     lhs = _new_target_;
-    (void) make_obj(values);
-    driver->reportFatal("Not implemented: " + make_obj(name.name_));
+    driver->fillFunctionValues<_value_type_>
+    (
+        *lhs,
+        make_obj(name.name_),
+        make_obj(values)
+    );
 }
 
 
diff --git a/src/finiteVolume/expressions/patch/patchExprScanner.cc b/src/finiteVolume/expressions/patch/patchExprScanner.cc
index 6b6c37a860133ed720645d2c33f964807f9c8a46..db0119c3872ab4aec92ae78f83ef86d5a2137263 100644
--- a/src/finiteVolume/expressions/patch/patchExprScanner.cc
+++ b/src/finiteVolume/expressions/patch/patchExprScanner.cc
@@ -311,14 +311,14 @@ static int driverTokenType
 
 
 #line 314 "patchExprScanner.cc"
-static const int patchExpr_start = 13;
-static const int patchExpr_first_final = 13;
+static const int patchExpr_start = 14;
+static const int patchExpr_first_final = 14;
 static const int patchExpr_error = 0;
 
-static const int patchExpr_en_main = 13;
+static const int patchExpr_en_main = 14;
 
 
-#line 466 "patchExprScanner.rl"
+#line 470 "patchExprScanner.rl"
 
 
 
@@ -427,6 +427,22 @@ bool Foam::expressions::patchExpr::scanner::dispatch_ident
 
         do
         {
+            #undef  doLocalCode
+            #define doLocalCode(TokType, Type)                      \
+            if (driver_.isFunction<Type>(funcName))                 \
+            {                                                       \
+                ident = std::move(funcName);                        \
+                tokType = TokType;                                  \
+                break;                                              \
+            }
+
+            #ifdef TOK_SCALAR_FUNCTION_ID
+            doLocalCode(TOK_SCALAR_FUNCTION_ID, scalar);
+            #endif
+            #ifdef TOK_VECTOR_FUNCTION_ID
+            doLocalCode(TOK_VECTOR_FUNCTION_ID, vector);
+            #endif
+            #undef doLocalCode
         }
         while (false);
     }
@@ -560,7 +576,7 @@ bool Foam::expressions::patchExpr::scanner::process
 
     // Initialize FSM variables
     
-#line 564 "patchExprScanner.cc"
+#line 580 "patchExprScanner.cc"
 	{
 	cs = patchExpr_start;
 	ts = 0;
@@ -568,11 +584,11 @@ bool Foam::expressions::patchExpr::scanner::process
 	act = 0;
 	}
 
-#line 706 "patchExprScanner.rl"
+#line 726 "patchExprScanner.rl"
    /* ^^^ FSM initialization here ^^^ */;
 
     
-#line 576 "patchExprScanner.cc"
+#line 592 "patchExprScanner.cc"
 	{
 	if ( p == pe )
 		goto _test_eof;
@@ -586,7 +602,7 @@ tr2:
         dispatch_ident(driver_, word(ts, te-ts, false));
         driver_.parsePosition() = (p-buf);
     }}
-	goto st13;
+	goto st14;
 tr4:
 #line 339 "patchExprScanner.rl"
 	{te = p+1;{
@@ -595,7 +611,7 @@ tr4:
         dispatch_ident(driver_, word(ts, te-ts, false));
         driver_.parsePosition() = (p-buf);
     }}
-	goto st13;
+	goto st14;
 tr5:
 #line 314 "patchExprScanner.rl"
 	{{p = ((te))-1;}{
@@ -622,108 +638,117 @@ tr5:
 
         driver_.parsePosition() = (p-buf);
     }}
-	goto st13;
+	goto st14;
 tr8:
-#line 383 "patchExprScanner.rl"
+#line 387 "patchExprScanner.rl"
 	{te = p+1;{ EMIT_TOKEN(EQUAL); }}
-	goto st13;
+	goto st14;
 tr9:
-#line 442 "patchExprScanner.rl"
-	{{p = ((te))-1;}{ EMIT_TOKEN(TENSOR); }}
-	goto st13;
+#line 339 "patchExprScanner.rl"
+	{{p = ((te))-1;}{
+        // Emit identifier
+        driver_.parsePosition() = (ts-buf);
+        dispatch_ident(driver_, word(ts, te-ts, false));
+        driver_.parsePosition() = (p-buf);
+    }}
+	goto st14;
 tr11:
-#line 453 "patchExprScanner.rl"
+#line 446 "patchExprScanner.rl"
+	{{p = ((te))-1;}{ EMIT_TOKEN(TENSOR); }}
+	goto st14;
+tr13:
+#line 457 "patchExprScanner.rl"
 	{te = p+1;{ EMIT_TOKEN(IDENTITY_TENSOR); }}
-	goto st13;
-tr12:
-#line 441 "patchExprScanner.rl"
-	{{p = ((te))-1;}{ EMIT_TOKEN(VECTOR); }}
-	goto st13;
+	goto st14;
 tr14:
-#line 450 "patchExprScanner.rl"
+#line 445 "patchExprScanner.rl"
+	{{p = ((te))-1;}{ EMIT_TOKEN(VECTOR); }}
+	goto st14;
+tr16:
+#line 454 "patchExprScanner.rl"
 	{te = p+1;{ EMIT_VECTOR_TOKEN(1,0,0); }}
-	goto st13;
-tr15:
-#line 451 "patchExprScanner.rl"
+	goto st14;
+tr17:
+#line 455 "patchExprScanner.rl"
 	{te = p+1;{ EMIT_VECTOR_TOKEN(0,1,0); }}
-	goto st13;
-tr16:
-#line 452 "patchExprScanner.rl"
+	goto st14;
+tr18:
+#line 456 "patchExprScanner.rl"
 	{te = p+1;{ EMIT_VECTOR_TOKEN(0,0,1); }}
-	goto st13;
-tr17:
-#line 386 "patchExprScanner.rl"
+	goto st14;
+tr19:
+#line 390 "patchExprScanner.rl"
 	{te = p+1;{ EMIT_TOKEN(LOR); }}
-	goto st13;
-tr21:
-#line 368 "patchExprScanner.rl"
+	goto st14;
+tr23:
+#line 372 "patchExprScanner.rl"
 	{te = p+1;{ EMIT_TOKEN(PERCENT); }}
-	goto st13;
-tr24:
-#line 369 "patchExprScanner.rl"
+	goto st14;
+tr26:
+#line 373 "patchExprScanner.rl"
 	{te = p+1;{ EMIT_TOKEN(LPAREN); }}
-	goto st13;
-tr25:
-#line 370 "patchExprScanner.rl"
+	goto st14;
+tr27:
+#line 374 "patchExprScanner.rl"
 	{te = p+1;{ EMIT_TOKEN(RPAREN); }}
-	goto st13;
-tr26:
-#line 371 "patchExprScanner.rl"
+	goto st14;
+tr28:
+#line 375 "patchExprScanner.rl"
 	{te = p+1;{ EMIT_TOKEN(TIMES); }}
-	goto st13;
-tr27:
-#line 372 "patchExprScanner.rl"
+	goto st14;
+tr29:
+#line 376 "patchExprScanner.rl"
 	{te = p+1;{ EMIT_TOKEN(PLUS); }}
-	goto st13;
-tr28:
-#line 374 "patchExprScanner.rl"
+	goto st14;
+tr30:
+#line 378 "patchExprScanner.rl"
 	{te = p+1;{ EMIT_TOKEN(COMMA); }}
-	goto st13;
-tr29:
-#line 373 "patchExprScanner.rl"
-	{te = p+1;{ EMIT_TOKEN(MINUS); }}
-	goto st13;
+	goto st14;
 tr31:
-#line 376 "patchExprScanner.rl"
-	{te = p+1;{ EMIT_TOKEN(DIVIDE); }}
-	goto st13;
+#line 377 "patchExprScanner.rl"
+	{te = p+1;{ EMIT_TOKEN(MINUS); }}
+	goto st14;
 tr33:
-#line 378 "patchExprScanner.rl"
+#line 380 "patchExprScanner.rl"
+	{te = p+1;{ EMIT_TOKEN(DIVIDE); }}
+	goto st14;
+tr35:
+#line 382 "patchExprScanner.rl"
 	{te = p+1;{ EMIT_TOKEN(COLON); }}
-	goto st13;
-tr37:
-#line 377 "patchExprScanner.rl"
+	goto st14;
+tr39:
+#line 381 "patchExprScanner.rl"
 	{te = p+1;{ EMIT_TOKEN(QUESTION); }}
-	goto st13;
-tr40:
-#line 389 "patchExprScanner.rl"
+	goto st14;
+tr41:
+#line 393 "patchExprScanner.rl"
 	{te = p+1;{ EMIT_TOKEN(BIT_XOR); }}
-	goto st13;
-tr58:
-#line 362 "patchExprScanner.rl"
-	{te = p;p--;}
-	goto st13;
+	goto st14;
 tr59:
-#line 367 "patchExprScanner.rl"
-	{te = p;p--;{ EMIT_TOKEN(LNOT); }}
-	goto st13;
+#line 366 "patchExprScanner.rl"
+	{te = p;p--;}
+	goto st14;
 tr60:
-#line 384 "patchExprScanner.rl"
-	{te = p+1;{ EMIT_TOKEN(NOT_EQUAL); }}
-	goto st13;
+#line 371 "patchExprScanner.rl"
+	{te = p;p--;{ EMIT_TOKEN(LNOT); }}
+	goto st14;
 tr61:
-#line 387 "patchExprScanner.rl"
-	{te = p;p--;{ EMIT_TOKEN(BIT_AND); }}
-	goto st13;
+#line 388 "patchExprScanner.rl"
+	{te = p+1;{ EMIT_TOKEN(NOT_EQUAL); }}
+	goto st14;
 tr62:
-#line 385 "patchExprScanner.rl"
-	{te = p+1;{ EMIT_TOKEN(LAND); }}
-	goto st13;
+#line 391 "patchExprScanner.rl"
+	{te = p;p--;{ EMIT_TOKEN(BIT_AND); }}
+	goto st14;
 tr63:
-#line 375 "patchExprScanner.rl"
+#line 389 "patchExprScanner.rl"
+	{te = p+1;{ EMIT_TOKEN(LAND); }}
+	goto st14;
+tr64:
+#line 379 "patchExprScanner.rl"
 	{te = p;p--;{ EMIT_TOKEN(DOT); }}
-	goto st13;
-tr66:
+	goto st14;
+tr67:
 #line 314 "patchExprScanner.rl"
 	{te = p;p--;{
         // Emit number
@@ -749,8 +774,8 @@ tr66:
 
         driver_.parsePosition() = (p-buf);
     }}
-	goto st13;
-tr68:
+	goto st14;
+tr69:
 #line 346 "patchExprScanner.rl"
 	{te = p;p--;{
         // Tokenized ".method" - dispatch '.' and "method" separately
@@ -758,24 +783,24 @@ tr68:
         dispatch_method(driver_, word(ts+1, te-ts-1, false));
         driver_.parsePosition() = (p-buf);
     }}
-	goto st13;
-tr69:
-#line 379 "patchExprScanner.rl"
-	{te = p;p--;{ EMIT_TOKEN(LESS); }}
-	goto st13;
+	goto st14;
 tr70:
-#line 380 "patchExprScanner.rl"
-	{te = p+1;{ EMIT_TOKEN(LESS_EQ); }}
-	goto st13;
+#line 383 "patchExprScanner.rl"
+	{te = p;p--;{ EMIT_TOKEN(LESS); }}
+	goto st14;
 tr71:
-#line 381 "patchExprScanner.rl"
-	{te = p;p--;{ EMIT_TOKEN(GREATER); }}
-	goto st13;
+#line 384 "patchExprScanner.rl"
+	{te = p+1;{ EMIT_TOKEN(LESS_EQ); }}
+	goto st14;
 tr72:
-#line 382 "patchExprScanner.rl"
-	{te = p+1;{ EMIT_TOKEN(GREATER_EQ); }}
-	goto st13;
+#line 385 "patchExprScanner.rl"
+	{te = p;p--;{ EMIT_TOKEN(GREATER); }}
+	goto st14;
 tr73:
+#line 386 "patchExprScanner.rl"
+	{te = p+1;{ EMIT_TOKEN(GREATER_EQ); }}
+	goto st14;
+tr74:
 #line 339 "patchExprScanner.rl"
 	{te = p;p--;{
         // Emit identifier
@@ -783,8 +808,8 @@ tr73:
         dispatch_ident(driver_, word(ts, te-ts, false));
         driver_.parsePosition() = (p-buf);
     }}
-	goto st13;
-tr75:
+	goto st14;
+tr76:
 #line 1 "NONE"
 	{	switch( act ) {
 	case 26:
@@ -908,132 +933,132 @@ tr75:
 	break;
 	}
 	}
-	goto st13;
-tr91:
-#line 411 "patchExprScanner.rl"
+	goto st14;
+tr92:
+#line 415 "patchExprScanner.rl"
 	{te = p;p--;{ EMIT_TOKEN(ATAN); }}
-	goto st13;
-tr106:
-#line 407 "patchExprScanner.rl"
+	goto st14;
+tr107:
+#line 411 "patchExprScanner.rl"
 	{te = p;p--;{ EMIT_TOKEN(COS); }}
-	goto st13;
-tr139:
-#line 400 "patchExprScanner.rl"
+	goto st14;
+tr142:
+#line 404 "patchExprScanner.rl"
 	{te = p;p--;{ EMIT_TOKEN(LOG); }}
-	goto st13;
-tr146:
-#line 416 "patchExprScanner.rl"
-	{te = p;p--;{ EMIT_TOKEN(MAG); }}
-	goto st13;
-tr154:
+	goto st14;
+tr149:
 #line 420 "patchExprScanner.rl"
+	{te = p;p--;{ EMIT_TOKEN(MAG); }}
+	goto st14;
+tr157:
+#line 424 "patchExprScanner.rl"
 	{te = p;p--;{ EMIT_TOKEN(NEG); }}
-	goto st13;
-tr171:
-#line 419 "patchExprScanner.rl"
+	goto st14;
+tr174:
+#line 423 "patchExprScanner.rl"
 	{te = p;p--;{ EMIT_TOKEN(POS); }}
-	goto st13;
-tr191:
-#line 406 "patchExprScanner.rl"
+	goto st14;
+tr194:
+#line 410 "patchExprScanner.rl"
 	{te = p;p--;{ EMIT_TOKEN(SIN); }}
-	goto st13;
-tr211:
-#line 403 "patchExprScanner.rl"
+	goto st14;
+tr214:
+#line 407 "patchExprScanner.rl"
 	{te = p;p--;{ EMIT_TOKEN(SQR); }}
-	goto st13;
-tr227:
-#line 408 "patchExprScanner.rl"
+	goto st14;
+tr230:
+#line 412 "patchExprScanner.rl"
 	{te = p;p--;{ EMIT_TOKEN(TAN); }}
-	goto st13;
-tr233:
-#line 442 "patchExprScanner.rl"
+	goto st14;
+tr236:
+#line 446 "patchExprScanner.rl"
 	{te = p;p--;{ EMIT_TOKEN(TENSOR); }}
-	goto st13;
-tr244:
-#line 441 "patchExprScanner.rl"
+	goto st14;
+tr247:
+#line 445 "patchExprScanner.rl"
 	{te = p;p--;{ EMIT_TOKEN(VECTOR); }}
-	goto st13;
-st13:
+	goto st14;
+st14:
 #line 1 "NONE"
 	{ts = 0;}
 	if ( ++p == pe )
-		goto _test_eof13;
-case 13:
+		goto _test_eof14;
+case 14:
 #line 1 "NONE"
 	{ts = p;}
-#line 965 "patchExprScanner.cc"
+#line 990 "patchExprScanner.cc"
 	switch( (*p) ) {
-		case 32: goto st14;
-		case 33: goto st15;
+		case 32: goto st15;
+		case 33: goto st16;
 		case 34: goto st1;
-		case 37: goto tr21;
-		case 38: goto st16;
+		case 37: goto tr23;
+		case 38: goto st17;
 		case 39: goto st3;
-		case 40: goto tr24;
-		case 41: goto tr25;
-		case 42: goto tr26;
-		case 43: goto tr27;
-		case 44: goto tr28;
-		case 45: goto tr29;
-		case 46: goto st17;
-		case 47: goto tr31;
-		case 58: goto tr33;
-		case 60: goto st22;
+		case 40: goto tr26;
+		case 41: goto tr27;
+		case 42: goto tr28;
+		case 43: goto tr29;
+		case 44: goto tr30;
+		case 45: goto tr31;
+		case 46: goto st18;
+		case 47: goto tr33;
+		case 58: goto tr35;
+		case 60: goto st23;
 		case 61: goto st7;
-		case 62: goto st23;
-		case 63: goto tr37;
-		case 90: goto st26;
-		case 94: goto tr40;
-		case 95: goto st24;
-		case 97: goto st29;
-		case 98: goto st43;
-		case 99: goto st46;
-		case 100: goto st51;
-		case 101: goto st61;
-		case 102: goto st63;
-		case 105: goto st67;
-		case 108: goto st79;
-		case 109: goto st83;
-		case 110: goto st89;
-		case 112: goto st103;
-		case 114: goto st106;
-		case 115: goto st114;
-		case 116: goto st146;
-		case 118: goto st158;
-		case 119: goto st164;
-		case 124: goto st12;
+		case 62: goto st24;
+		case 63: goto tr39;
+		case 90: goto st27;
+		case 94: goto tr41;
+		case 95: goto st25;
+		case 97: goto st30;
+		case 98: goto st44;
+		case 99: goto st47;
+		case 100: goto st52;
+		case 101: goto st62;
+		case 102: goto st64;
+		case 105: goto st69;
+		case 108: goto st81;
+		case 109: goto st85;
+		case 110: goto st91;
+		case 112: goto st105;
+		case 114: goto st108;
+		case 115: goto st116;
+		case 116: goto st148;
+		case 118: goto st160;
+		case 119: goto st166;
+		case 124: goto st13;
 	}
 	if ( (*p) < 48 ) {
 		if ( 9 <= (*p) && (*p) <= 13 )
-			goto st14;
+			goto st15;
 	} else if ( (*p) > 57 ) {
 		if ( (*p) > 89 ) {
 			if ( 103 <= (*p) && (*p) <= 122 )
-				goto st24;
+				goto st25;
 		} else if ( (*p) >= 65 )
-			goto st24;
+			goto st25;
 	} else
-		goto tr32;
+		goto tr34;
 	goto st0;
 st0:
 cs = 0;
 	goto _out;
-st14:
-	if ( ++p == pe )
-		goto _test_eof14;
-case 14:
-	if ( (*p) == 32 )
-		goto st14;
-	if ( 9 <= (*p) && (*p) <= 13 )
-		goto st14;
-	goto tr58;
 st15:
 	if ( ++p == pe )
 		goto _test_eof15;
 case 15:
-	if ( (*p) == 61 )
-		goto tr60;
+	if ( (*p) == 32 )
+		goto st15;
+	if ( 9 <= (*p) && (*p) <= 13 )
+		goto st15;
 	goto tr59;
+st16:
+	if ( ++p == pe )
+		goto _test_eof16;
+case 16:
+	if ( (*p) == 61 )
+		goto tr61;
+	goto tr60;
 st1:
 	if ( ++p == pe )
 		goto _test_eof1;
@@ -1048,13 +1073,13 @@ case 2:
 	if ( (*p) == 34 )
 		goto tr2;
 	goto st2;
-st16:
+st17:
 	if ( ++p == pe )
-		goto _test_eof16;
-case 16:
+		goto _test_eof17;
+case 17:
 	if ( (*p) == 38 )
-		goto tr62;
-	goto tr61;
+		goto tr63;
+	goto tr62;
 st3:
 	if ( ++p == pe )
 		goto _test_eof3;
@@ -1069,35 +1094,35 @@ case 4:
 	if ( (*p) == 39 )
 		goto tr4;
 	goto st4;
-st17:
+st18:
 	if ( ++p == pe )
-		goto _test_eof17;
-case 17:
+		goto _test_eof18;
+case 18:
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr64;
+			goto tr65;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto st20;
+			goto st21;
 	} else
-		goto st20;
-	goto tr63;
-tr64:
+		goto st21;
+	goto tr64;
+tr65:
 #line 1 "NONE"
 	{te = p+1;}
-	goto st18;
-st18:
+	goto st19;
+st19:
 	if ( ++p == pe )
-		goto _test_eof18;
-case 18:
-#line 1094 "patchExprScanner.cc"
+		goto _test_eof19;
+case 19:
+#line 1119 "patchExprScanner.cc"
 	switch( (*p) ) {
 		case 69: goto st5;
 		case 101: goto st5;
 	}
 	if ( 48 <= (*p) && (*p) <= 57 )
-		goto tr64;
-	goto tr66;
+		goto tr65;
+	goto tr67;
 st5:
 	if ( ++p == pe )
 		goto _test_eof5;
@@ -1107,56 +1132,56 @@ case 5:
 		case 45: goto st6;
 	}
 	if ( 48 <= (*p) && (*p) <= 57 )
-		goto st19;
+		goto st20;
 	goto tr5;
 st6:
 	if ( ++p == pe )
 		goto _test_eof6;
 case 6:
 	if ( 48 <= (*p) && (*p) <= 57 )
-		goto st19;
+		goto st20;
 	goto tr5;
-st19:
-	if ( ++p == pe )
-		goto _test_eof19;
-case 19:
-	if ( 48 <= (*p) && (*p) <= 57 )
-		goto st19;
-	goto tr66;
 st20:
 	if ( ++p == pe )
 		goto _test_eof20;
 case 20:
+	if ( 48 <= (*p) && (*p) <= 57 )
+		goto st20;
+	goto tr67;
+st21:
+	if ( ++p == pe )
+		goto _test_eof21;
+case 21:
 	if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto st20;
+			goto st21;
 	} else if ( (*p) >= 65 )
-		goto st20;
-	goto tr68;
-tr32:
+		goto st21;
+	goto tr69;
+tr34:
 #line 1 "NONE"
 	{te = p+1;}
-	goto st21;
-st21:
+	goto st22;
+st22:
 	if ( ++p == pe )
-		goto _test_eof21;
-case 21:
-#line 1145 "patchExprScanner.cc"
+		goto _test_eof22;
+case 22:
+#line 1170 "patchExprScanner.cc"
 	switch( (*p) ) {
-		case 46: goto tr64;
+		case 46: goto tr65;
 		case 69: goto st5;
 		case 101: goto st5;
 	}
 	if ( 48 <= (*p) && (*p) <= 57 )
-		goto tr32;
-	goto tr66;
-st22:
+		goto tr34;
+	goto tr67;
+st23:
 	if ( ++p == pe )
-		goto _test_eof22;
-case 22:
+		goto _test_eof23;
+case 23:
 	if ( (*p) == 61 )
-		goto tr70;
-	goto tr69;
+		goto tr71;
+	goto tr70;
 st7:
 	if ( ++p == pe )
 		goto _test_eof7;
@@ -1164,3101 +1189,3136 @@ case 7:
 	if ( (*p) == 61 )
 		goto tr8;
 	goto st0;
-st23:
-	if ( ++p == pe )
-		goto _test_eof23;
-case 23:
-	if ( (*p) == 61 )
-		goto tr72;
-	goto tr71;
 st24:
 	if ( ++p == pe )
 		goto _test_eof24;
 case 24:
+	if ( (*p) == 61 )
+		goto tr73;
+	goto tr72;
+st25:
+	if ( ++p == pe )
+		goto _test_eof25;
+case 25:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
+		case 46: goto tr75;
+		case 95: goto tr75;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
-tr74:
+		goto tr75;
+	goto tr74;
+tr75:
 #line 1 "NONE"
 	{te = p+1;}
 #line 339 "patchExprScanner.rl"
 	{act = 78;}
-	goto st25;
-tr78:
+	goto st26;
+tr79:
 #line 1 "NONE"
 	{te = p+1;}
-#line 449 "patchExprScanner.rl"
+#line 453 "patchExprScanner.rl"
 	{act = 70;}
-	goto st25;
-tr85:
+	goto st26;
+tr86:
 #line 1 "NONE"
 	{te = p+1;}
-#line 410 "patchExprScanner.rl"
+#line 414 "patchExprScanner.rl"
 	{act = 40;}
-	goto st25;
-tr86:
+	goto st26;
+tr87:
 #line 1 "NONE"
 	{te = p+1;}
-#line 454 "patchExprScanner.rl"
+#line 458 "patchExprScanner.rl"
 	{act = 75;}
-	goto st25;
-tr88:
+	goto st26;
+tr89:
 #line 1 "NONE"
 	{te = p+1;}
-#line 409 "patchExprScanner.rl"
+#line 413 "patchExprScanner.rl"
 	{act = 39;}
-	goto st25;
-tr92:
+	goto st26;
+tr93:
 #line 1 "NONE"
 	{te = p+1;}
-#line 412 "patchExprScanner.rl"
+#line 416 "patchExprScanner.rl"
 	{act = 42;}
-	goto st25;
-tr97:
+	goto st26;
+tr98:
 #line 1 "NONE"
 	{te = p+1;}
-#line 428 "patchExprScanner.rl"
+#line 432 "patchExprScanner.rl"
 	{act = 55;}
-	goto st25;
-tr100:
+	goto st26;
+tr101:
 #line 1 "NONE"
 	{te = p+1;}
-#line 440 "patchExprScanner.rl"
+#line 444 "patchExprScanner.rl"
 	{act = 63;}
-	goto st25;
-tr104:
+	goto st26;
+tr105:
 #line 1 "NONE"
 	{te = p+1;}
-#line 405 "patchExprScanner.rl"
+#line 409 "patchExprScanner.rl"
 	{act = 35;}
-	goto st25;
-tr107:
+	goto st26;
+tr108:
 #line 1 "NONE"
 	{te = p+1;}
-#line 414 "patchExprScanner.rl"
+#line 418 "patchExprScanner.rl"
 	{act = 44;}
-	goto st25;
-tr115:
+	goto st26;
+tr116:
 #line 1 "NONE"
 	{te = p+1;}
-#line 397 "patchExprScanner.rl"
+#line 401 "patchExprScanner.rl"
 	{act = 27;}
-	goto st25;
-tr118:
+	goto st26;
+tr119:
 #line 1 "NONE"
 	{te = p+1;}
-#line 456 "patchExprScanner.rl"
+#line 460 "patchExprScanner.rl"
 	{act = 77;}
-	goto st25;
-tr120:
+	goto st26;
+tr121:
 #line 1 "NONE"
 	{te = p+1;}
-#line 399 "patchExprScanner.rl"
+#line 403 "patchExprScanner.rl"
 	{act = 29;}
-	goto st25;
-tr124:
+	goto st26;
+tr126:
 #line 1 "NONE"
 	{te = p+1;}
-#line 448 "patchExprScanner.rl"
+#line 452 "patchExprScanner.rl"
 	{act = 69;}
-	goto st25;
-tr136:
+	goto st26;
+tr139:
 #line 1 "NONE"
 	{te = p+1;}
-#line 436 "patchExprScanner.rl"
+#line 440 "patchExprScanner.rl"
 	{act = 61;}
-	goto st25;
-tr141:
+	goto st26;
+tr144:
 #line 1 "NONE"
 	{te = p+1;}
-#line 401 "patchExprScanner.rl"
+#line 405 "patchExprScanner.rl"
 	{act = 31;}
-	goto st25;
-tr145:
+	goto st26;
+tr148:
 #line 1 "NONE"
 	{te = p+1;}
-#line 427 "patchExprScanner.rl"
+#line 431 "patchExprScanner.rl"
 	{act = 54;}
-	goto st25;
-tr149:
+	goto st26;
+tr152:
 #line 1 "NONE"
 	{te = p+1;}
-#line 417 "patchExprScanner.rl"
+#line 421 "patchExprScanner.rl"
 	{act = 47;}
-	goto st25;
-tr150:
+	goto st26;
+tr153:
 #line 1 "NONE"
 	{te = p+1;}
-#line 426 "patchExprScanner.rl"
+#line 430 "patchExprScanner.rl"
 	{act = 53;}
-	goto st25;
-tr155:
+	goto st26;
+tr158:
 #line 1 "NONE"
 	{te = p+1;}
-#line 422 "patchExprScanner.rl"
+#line 426 "patchExprScanner.rl"
 	{act = 51;}
-	goto st25;
-tr166:
+	goto st26;
+tr169:
 #line 1 "NONE"
 	{te = p+1;}
-#line 437 "patchExprScanner.rl"
+#line 441 "patchExprScanner.rl"
 	{act = 62;}
-	goto st25;
-tr167:
+	goto st26;
+tr170:
 #line 1 "NONE"
 	{te = p+1;}
-#line 396 "patchExprScanner.rl"
+#line 400 "patchExprScanner.rl"
 	{act = 26;}
-	goto st25;
-tr170:
+	goto st26;
+tr173:
 #line 1 "NONE"
 	{te = p+1;}
-#line 402 "patchExprScanner.rl"
+#line 406 "patchExprScanner.rl"
 	{act = 32;}
-	goto st25;
-tr172:
+	goto st26;
+tr175:
 #line 1 "NONE"
 	{te = p+1;}
-#line 421 "patchExprScanner.rl"
+#line 425 "patchExprScanner.rl"
 	{act = 50;}
-	goto st25;
-tr180:
+	goto st26;
+tr183:
 #line 1 "NONE"
 	{te = p+1;}
-#line 398 "patchExprScanner.rl"
+#line 402 "patchExprScanner.rl"
 	{act = 28;}
-	goto st25;
-tr181:
+	goto st26;
+tr184:
 #line 1 "NONE"
 	{te = p+1;}
-#line 432 "patchExprScanner.rl"
+#line 436 "patchExprScanner.rl"
 	{act = 59;}
-	goto st25;
-tr190:
+	goto st26;
+tr193:
 #line 1 "NONE"
 	{te = p+1;}
-#line 423 "patchExprScanner.rl"
+#line 427 "patchExprScanner.rl"
 	{act = 52;}
-	goto st25;
-tr192:
+	goto st26;
+tr195:
 #line 1 "NONE"
 	{te = p+1;}
-#line 413 "patchExprScanner.rl"
+#line 417 "patchExprScanner.rl"
 	{act = 43;}
-	goto st25;
-tr196:
+	goto st26;
+tr199:
 #line 1 "NONE"
 	{te = p+1;}
-#line 435 "patchExprScanner.rl"
+#line 439 "patchExprScanner.rl"
 	{act = 60;}
-	goto st25;
-tr209:
+	goto st26;
+tr212:
 #line 1 "NONE"
 	{te = p+1;}
-#line 444 "patchExprScanner.rl"
+#line 448 "patchExprScanner.rl"
 	{act = 67;}
-	goto st25;
-tr212:
+	goto st26;
+tr215:
 #line 1 "NONE"
 	{te = p+1;}
-#line 404 "patchExprScanner.rl"
+#line 408 "patchExprScanner.rl"
 	{act = 34;}
-	goto st25;
-tr213:
+	goto st26;
+tr216:
 #line 1 "NONE"
 	{te = p+1;}
-#line 429 "patchExprScanner.rl"
+#line 433 "patchExprScanner.rl"
 	{act = 56;}
-	goto st25;
-tr221:
+	goto st26;
+tr224:
 #line 1 "NONE"
 	{te = p+1;}
-#line 443 "patchExprScanner.rl"
+#line 447 "patchExprScanner.rl"
 	{act = 66;}
-	goto st25;
-tr228:
+	goto st26;
+tr231:
 #line 1 "NONE"
 	{te = p+1;}
-#line 415 "patchExprScanner.rl"
+#line 419 "patchExprScanner.rl"
 	{act = 45;}
-	goto st25;
-tr236:
+	goto st26;
+tr239:
 #line 1 "NONE"
 	{te = p+1;}
-#line 455 "patchExprScanner.rl"
+#line 459 "patchExprScanner.rl"
 	{act = 76;}
-	goto st25;
-tr238:
+	goto st26;
+tr241:
 #line 1 "NONE"
 	{te = p+1;}
-#line 447 "patchExprScanner.rl"
+#line 451 "patchExprScanner.rl"
 	{act = 68;}
-	goto st25;
-tr258:
+	goto st26;
+tr261:
 #line 1 "NONE"
 	{te = p+1;}
-#line 430 "patchExprScanner.rl"
+#line 434 "patchExprScanner.rl"
 	{act = 57;}
-	goto st25;
-tr260:
+	goto st26;
+tr263:
 #line 1 "NONE"
 	{te = p+1;}
-#line 431 "patchExprScanner.rl"
+#line 435 "patchExprScanner.rl"
 	{act = 58;}
-	goto st25;
-st25:
-	if ( ++p == pe )
-		goto _test_eof25;
-case 25:
-#line 1424 "patchExprScanner.cc"
-	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-	}
-	if ( (*p) < 65 ) {
-		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
-	} else if ( (*p) > 90 ) {
-		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
-	} else
-		goto tr74;
-	goto tr75;
+	goto st26;
 st26:
 	if ( ++p == pe )
 		goto _test_eof26;
 case 26:
+#line 1449 "patchExprScanner.cc"
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 101: goto st27;
+		case 46: goto tr75;
+		case 95: goto tr75;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr76;
 st27:
 	if ( ++p == pe )
 		goto _test_eof27;
 case 27:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 114: goto st28;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 101: goto st28;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st28:
 	if ( ++p == pe )
 		goto _test_eof28;
 case 28:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 111: goto tr78;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 114: goto st29;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st29:
 	if ( ++p == pe )
 		goto _test_eof29;
 case 29:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 99: goto st30;
-		case 114: goto st32;
-		case 115: goto st33;
-		case 116: goto st35;
-		case 118: goto st38;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 111: goto tr79;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st30:
 	if ( ++p == pe )
 		goto _test_eof30;
 case 30:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 111: goto st31;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 99: goto st31;
+		case 114: goto st33;
+		case 115: goto st34;
+		case 116: goto st36;
+		case 118: goto st39;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st31:
 	if ( ++p == pe )
 		goto _test_eof31;
 case 31:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 115: goto tr85;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 111: goto st32;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st32:
 	if ( ++p == pe )
 		goto _test_eof32;
 case 32:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 103: goto tr86;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 115: goto tr86;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st33:
 	if ( ++p == pe )
 		goto _test_eof33;
 case 33:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 105: goto st34;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 103: goto tr87;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st34:
 	if ( ++p == pe )
 		goto _test_eof34;
 case 34:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 110: goto tr88;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 105: goto st35;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st35:
 	if ( ++p == pe )
 		goto _test_eof35;
 case 35:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 97: goto st36;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 110: goto tr89;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
-		if ( 98 <= (*p) && (*p) <= 122 )
-			goto tr74;
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st36:
 	if ( ++p == pe )
 		goto _test_eof36;
 case 36:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 110: goto st37;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 97: goto st37;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
-		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+		if ( 98 <= (*p) && (*p) <= 122 )
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st37:
 	if ( ++p == pe )
 		goto _test_eof37;
 case 37:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 50: goto tr92;
-		case 95: goto tr74;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 110: goto st38;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr91;
+		goto tr75;
+	goto tr74;
 st38:
 	if ( ++p == pe )
 		goto _test_eof38;
 case 38:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 101: goto st39;
+		case 46: goto tr75;
+		case 50: goto tr93;
+		case 95: goto tr75;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr92;
 st39:
 	if ( ++p == pe )
 		goto _test_eof39;
 case 39:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 114: goto st40;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 101: goto st40;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st40:
 	if ( ++p == pe )
 		goto _test_eof40;
 case 40:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 97: goto st41;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 114: goto st41;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
-		if ( 98 <= (*p) && (*p) <= 122 )
-			goto tr74;
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st41:
 	if ( ++p == pe )
 		goto _test_eof41;
 case 41:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 103: goto st42;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 97: goto st42;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
-		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+		if ( 98 <= (*p) && (*p) <= 122 )
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st42:
 	if ( ++p == pe )
 		goto _test_eof42;
 case 42:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 101: goto tr97;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 103: goto st43;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st43:
 	if ( ++p == pe )
 		goto _test_eof43;
 case 43:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 111: goto st44;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 101: goto tr98;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st44:
 	if ( ++p == pe )
 		goto _test_eof44;
 case 44:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
+		case 46: goto tr75;
+		case 95: goto tr75;
 		case 111: goto st45;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st45:
 	if ( ++p == pe )
 		goto _test_eof45;
 case 45:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 108: goto tr100;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 111: goto st46;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st46:
 	if ( ++p == pe )
 		goto _test_eof46;
 case 46:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 98: goto st47;
-		case 111: goto st49;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 108: goto tr101;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st47:
 	if ( ++p == pe )
 		goto _test_eof47;
 case 47:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 114: goto st48;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 98: goto st48;
+		case 111: goto st50;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st48:
 	if ( ++p == pe )
 		goto _test_eof48;
 case 48:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 116: goto tr104;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 114: goto st49;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st49:
 	if ( ++p == pe )
 		goto _test_eof49;
 case 49:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 115: goto st50;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 116: goto tr105;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st50:
 	if ( ++p == pe )
 		goto _test_eof50;
 case 50:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 104: goto tr107;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 115: goto st51;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr106;
+		goto tr75;
+	goto tr74;
 st51:
 	if ( ++p == pe )
 		goto _test_eof51;
 case 51:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 101: goto st52;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 104: goto tr108;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr107;
 st52:
 	if ( ++p == pe )
 		goto _test_eof52;
 case 52:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 103: goto st53;
-		case 108: goto st58;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 101: goto st53;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st53:
 	if ( ++p == pe )
 		goto _test_eof53;
 case 53:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 84: goto st54;
-		case 95: goto tr74;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 103: goto st54;
+		case 108: goto st59;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st54:
 	if ( ++p == pe )
 		goto _test_eof54;
 case 54:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 111: goto st55;
+		case 46: goto tr75;
+		case 84: goto st55;
+		case 95: goto tr75;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st55:
 	if ( ++p == pe )
 		goto _test_eof55;
 case 55:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 82: goto st56;
-		case 95: goto tr74;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 111: goto st56;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st56:
 	if ( ++p == pe )
 		goto _test_eof56;
 case 56:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 97: goto st57;
+		case 46: goto tr75;
+		case 82: goto st57;
+		case 95: goto tr75;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
-		if ( 98 <= (*p) && (*p) <= 122 )
-			goto tr74;
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st57:
 	if ( ++p == pe )
 		goto _test_eof57;
 case 57:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 100: goto tr115;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 97: goto st58;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
-		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+		if ( 98 <= (*p) && (*p) <= 122 )
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st58:
 	if ( ++p == pe )
 		goto _test_eof58;
 case 58:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 116: goto st59;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 100: goto tr116;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st59:
 	if ( ++p == pe )
 		goto _test_eof59;
 case 59:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 97: goto st60;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 116: goto st60;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
-		if ( 98 <= (*p) && (*p) <= 122 )
-			goto tr74;
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st60:
 	if ( ++p == pe )
 		goto _test_eof60;
 case 60:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 84: goto tr118;
-		case 95: goto tr74;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 97: goto st61;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
-		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+		if ( 98 <= (*p) && (*p) <= 122 )
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st61:
 	if ( ++p == pe )
 		goto _test_eof61;
 case 61:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 120: goto st62;
+		case 46: goto tr75;
+		case 84: goto tr119;
+		case 95: goto tr75;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st62:
 	if ( ++p == pe )
 		goto _test_eof62;
 case 62:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 112: goto tr120;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 120: goto st63;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st63:
 	if ( ++p == pe )
 		goto _test_eof63;
 case 63:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 97: goto st64;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 112: goto tr121;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
-		if ( 98 <= (*p) && (*p) <= 122 )
-			goto tr74;
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st64:
 	if ( ++p == pe )
 		goto _test_eof64;
 case 64:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 108: goto st65;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 97: goto st65;
+		case 110: goto tr123;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
-		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+		if ( 98 <= (*p) && (*p) <= 122 )
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st65:
 	if ( ++p == pe )
 		goto _test_eof65;
 case 65:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 115: goto st66;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 108: goto st66;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st66:
 	if ( ++p == pe )
 		goto _test_eof66;
 case 66:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 101: goto tr124;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 115: goto st67;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st67:
 	if ( ++p == pe )
 		goto _test_eof67;
 case 67:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 110: goto st68;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 101: goto tr126;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
+tr123:
+#line 1 "NONE"
+	{te = p+1;}
+	goto st68;
 st68:
 	if ( ++p == pe )
 		goto _test_eof68;
 case 68:
+#line 2216 "patchExprScanner.cc"
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 116: goto st69;
+		case 46: goto tr75;
+		case 58: goto st8;
+		case 95: goto tr75;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
+st8:
+	if ( ++p == pe )
+		goto _test_eof8;
+case 8:
+	if ( (*p) == 95 )
+		goto st25;
+	if ( (*p) > 90 ) {
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto st25;
+	} else if ( (*p) >= 65 )
+		goto st25;
+	goto tr9;
 st69:
 	if ( ++p == pe )
 		goto _test_eof69;
 case 69:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 101: goto st70;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 110: goto st70;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st70:
 	if ( ++p == pe )
 		goto _test_eof70;
 case 70:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 114: goto st71;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 116: goto st71;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st71:
 	if ( ++p == pe )
 		goto _test_eof71;
 case 71:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 110: goto st72;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 101: goto st72;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st72:
 	if ( ++p == pe )
 		goto _test_eof72;
 case 72:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 97: goto st73;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 114: goto st73;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
-		if ( 98 <= (*p) && (*p) <= 122 )
-			goto tr74;
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st73:
 	if ( ++p == pe )
 		goto _test_eof73;
 case 73:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 108: goto st74;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 110: goto st74;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st74:
 	if ( ++p == pe )
 		goto _test_eof74;
 case 74:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 70: goto st75;
-		case 95: goto tr74;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 97: goto st75;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
-		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+		if ( 98 <= (*p) && (*p) <= 122 )
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st75:
 	if ( ++p == pe )
 		goto _test_eof75;
 case 75:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 105: goto st76;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 108: goto st76;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st76:
 	if ( ++p == pe )
 		goto _test_eof76;
 case 76:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 101: goto st77;
+		case 46: goto tr75;
+		case 70: goto st77;
+		case 95: goto tr75;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st77:
 	if ( ++p == pe )
 		goto _test_eof77;
 case 77:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 108: goto st78;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 105: goto st78;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st78:
 	if ( ++p == pe )
 		goto _test_eof78;
 case 78:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 100: goto tr136;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 101: goto st79;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st79:
 	if ( ++p == pe )
 		goto _test_eof79;
 case 79:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 111: goto st80;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 108: goto st80;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st80:
 	if ( ++p == pe )
 		goto _test_eof80;
 case 80:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 103: goto st81;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 100: goto tr139;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st81:
 	if ( ++p == pe )
 		goto _test_eof81;
 case 81:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 49: goto st82;
-		case 95: goto tr74;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 111: goto st82;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr139;
+		goto tr75;
+	goto tr74;
 st82:
 	if ( ++p == pe )
 		goto _test_eof82;
 case 82:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 48: goto tr141;
-		case 95: goto tr74;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 103: goto st83;
 	}
 	if ( (*p) < 65 ) {
-		if ( 49 <= (*p) && (*p) <= 57 )
-			goto tr74;
+		if ( 48 <= (*p) && (*p) <= 57 )
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st83:
 	if ( ++p == pe )
 		goto _test_eof83;
 case 83:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 97: goto st84;
-		case 105: goto st88;
+		case 46: goto tr75;
+		case 49: goto st84;
+		case 95: goto tr75;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
-		if ( 98 <= (*p) && (*p) <= 122 )
-			goto tr74;
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr142;
 st84:
 	if ( ++p == pe )
 		goto _test_eof84;
 case 84:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 103: goto st85;
-		case 120: goto tr145;
+		case 46: goto tr75;
+		case 48: goto tr144;
+		case 95: goto tr75;
 	}
 	if ( (*p) < 65 ) {
-		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+		if ( 49 <= (*p) && (*p) <= 57 )
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st85:
 	if ( ++p == pe )
 		goto _test_eof85;
 case 85:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 83: goto st86;
-		case 95: goto tr74;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 97: goto st86;
+		case 105: goto st90;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
-		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+		if ( 98 <= (*p) && (*p) <= 122 )
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr146;
+		goto tr75;
+	goto tr74;
 st86:
 	if ( ++p == pe )
 		goto _test_eof86;
 case 86:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 113: goto st87;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 103: goto st87;
+		case 120: goto tr148;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st87:
 	if ( ++p == pe )
 		goto _test_eof87;
 case 87:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 114: goto tr149;
+		case 46: goto tr75;
+		case 83: goto st88;
+		case 95: goto tr75;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr149;
 st88:
 	if ( ++p == pe )
 		goto _test_eof88;
 case 88:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 110: goto tr150;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 113: goto st89;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st89:
 	if ( ++p == pe )
 		goto _test_eof89;
 case 89:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 101: goto st90;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 114: goto tr152;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st90:
 	if ( ++p == pe )
 		goto _test_eof90;
 case 90:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 103: goto st91;
-		case 105: goto st92;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 110: goto tr153;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st91:
 	if ( ++p == pe )
 		goto _test_eof91;
 case 91:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 48: goto tr155;
-		case 95: goto tr74;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 101: goto st92;
 	}
 	if ( (*p) < 65 ) {
-		if ( 49 <= (*p) && (*p) <= 57 )
-			goto tr74;
+		if ( 48 <= (*p) && (*p) <= 57 )
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr154;
+		goto tr75;
+	goto tr74;
 st92:
 	if ( ++p == pe )
 		goto _test_eof92;
 case 92:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
+		case 46: goto tr75;
+		case 95: goto tr75;
 		case 103: goto st93;
+		case 105: goto st94;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st93:
 	if ( ++p == pe )
 		goto _test_eof93;
 case 93:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 104: goto st94;
+		case 46: goto tr75;
+		case 48: goto tr158;
+		case 95: goto tr75;
 	}
 	if ( (*p) < 65 ) {
-		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+		if ( 49 <= (*p) && (*p) <= 57 )
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr157;
 st94:
 	if ( ++p == pe )
 		goto _test_eof94;
 case 94:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 98: goto st95;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 103: goto st95;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st95:
 	if ( ++p == pe )
 		goto _test_eof95;
 case 95:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 111: goto st96;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 104: goto st96;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st96:
 	if ( ++p == pe )
 		goto _test_eof96;
 case 96:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 117: goto st97;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 98: goto st97;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st97:
 	if ( ++p == pe )
 		goto _test_eof97;
 case 97:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 114: goto st98;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 111: goto st98;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st98:
 	if ( ++p == pe )
 		goto _test_eof98;
 case 98:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 70: goto st99;
-		case 95: goto tr74;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 117: goto st99;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st99:
 	if ( ++p == pe )
 		goto _test_eof99;
 case 99:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 105: goto st100;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 114: goto st100;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st100:
 	if ( ++p == pe )
 		goto _test_eof100;
 case 100:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 101: goto st101;
+		case 46: goto tr75;
+		case 70: goto st101;
+		case 95: goto tr75;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st101:
 	if ( ++p == pe )
 		goto _test_eof101;
 case 101:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 108: goto st102;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 105: goto st102;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st102:
 	if ( ++p == pe )
 		goto _test_eof102;
 case 102:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 100: goto tr166;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 101: goto st103;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st103:
 	if ( ++p == pe )
 		goto _test_eof103;
 case 103:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 105: goto tr167;
-		case 111: goto st104;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 108: goto st104;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st104:
 	if ( ++p == pe )
 		goto _test_eof104;
 case 104:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 115: goto st105;
-		case 119: goto tr170;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 100: goto tr169;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st105:
 	if ( ++p == pe )
 		goto _test_eof105;
 case 105:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 48: goto tr172;
-		case 95: goto tr74;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 105: goto tr170;
+		case 111: goto st106;
 	}
 	if ( (*p) < 65 ) {
-		if ( 49 <= (*p) && (*p) <= 57 )
-			goto tr74;
+		if ( 48 <= (*p) && (*p) <= 57 )
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr171;
+		goto tr75;
+	goto tr74;
 st106:
 	if ( ++p == pe )
 		goto _test_eof106;
 case 106:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 97: goto st107;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 115: goto st107;
+		case 119: goto tr173;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
-		if ( 98 <= (*p) && (*p) <= 122 )
-			goto tr74;
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st107:
 	if ( ++p == pe )
 		goto _test_eof107;
 case 107:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 100: goto st108;
-		case 110: goto st113;
+		case 46: goto tr75;
+		case 48: goto tr175;
+		case 95: goto tr75;
 	}
 	if ( (*p) < 65 ) {
-		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+		if ( 49 <= (*p) && (*p) <= 57 )
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr174;
 st108:
 	if ( ++p == pe )
 		goto _test_eof108;
 case 108:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 84: goto st109;
-		case 95: goto tr74;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 97: goto st109;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
-		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+		if ( 98 <= (*p) && (*p) <= 122 )
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st109:
 	if ( ++p == pe )
 		goto _test_eof109;
 case 109:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 111: goto st110;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 100: goto st110;
+		case 110: goto st115;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st110:
 	if ( ++p == pe )
 		goto _test_eof110;
 case 110:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 68: goto st111;
-		case 95: goto tr74;
+		case 46: goto tr75;
+		case 84: goto st111;
+		case 95: goto tr75;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st111:
 	if ( ++p == pe )
 		goto _test_eof111;
 case 111:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 101: goto st112;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 111: goto st112;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st112:
 	if ( ++p == pe )
 		goto _test_eof112;
 case 112:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 103: goto tr180;
+		case 46: goto tr75;
+		case 68: goto st113;
+		case 95: goto tr75;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st113:
 	if ( ++p == pe )
 		goto _test_eof113;
 case 113:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 100: goto tr181;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 101: goto st114;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st114:
 	if ( ++p == pe )
 		goto _test_eof114;
 case 114:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 105: goto st115;
-		case 110: goto st118;
-		case 112: goto st122;
-		case 113: goto st135;
-		case 117: goto st137;
-		case 121: goto st138;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 103: goto tr183;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st115:
 	if ( ++p == pe )
 		goto _test_eof115;
 case 115:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 103: goto st116;
-		case 110: goto st117;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 100: goto tr184;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st116:
 	if ( ++p == pe )
 		goto _test_eof116;
 case 116:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 110: goto tr190;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 105: goto st117;
+		case 110: goto st120;
+		case 112: goto st124;
+		case 113: goto st137;
+		case 117: goto st139;
+		case 121: goto st140;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st117:
 	if ( ++p == pe )
 		goto _test_eof117;
 case 117:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 104: goto tr192;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 103: goto st118;
+		case 110: goto st119;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr191;
+		goto tr75;
+	goto tr74;
 st118:
 	if ( ++p == pe )
 		goto _test_eof118;
 case 118:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 71: goto st119;
-		case 95: goto tr74;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 110: goto tr193;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st119:
 	if ( ++p == pe )
 		goto _test_eof119;
 case 119:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 114: goto st120;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 104: goto tr195;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr194;
 st120:
 	if ( ++p == pe )
 		goto _test_eof120;
 case 120:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 97: goto st121;
+		case 46: goto tr75;
+		case 71: goto st121;
+		case 95: goto tr75;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
-		if ( 98 <= (*p) && (*p) <= 122 )
-			goto tr74;
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st121:
 	if ( ++p == pe )
 		goto _test_eof121;
 case 121:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 100: goto tr196;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 114: goto st122;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st122:
 	if ( ++p == pe )
 		goto _test_eof122;
 case 122:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 104: goto st123;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 97: goto st123;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
-		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+		if ( 98 <= (*p) && (*p) <= 122 )
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st123:
 	if ( ++p == pe )
 		goto _test_eof123;
 case 123:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 101: goto st124;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 100: goto tr199;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st124:
 	if ( ++p == pe )
 		goto _test_eof124;
 case 124:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 114: goto st125;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 104: goto st125;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st125:
 	if ( ++p == pe )
 		goto _test_eof125;
 case 125:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 105: goto st126;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 101: goto st126;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st126:
 	if ( ++p == pe )
 		goto _test_eof126;
 case 126:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 99: goto st127;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 114: goto st127;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st127:
 	if ( ++p == pe )
 		goto _test_eof127;
 case 127:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 97: goto st128;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 105: goto st128;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
-		if ( 98 <= (*p) && (*p) <= 122 )
-			goto tr74;
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st128:
 	if ( ++p == pe )
 		goto _test_eof128;
 case 128:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 108: goto st129;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 99: goto st129;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st129:
 	if ( ++p == pe )
 		goto _test_eof129;
 case 129:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 84: goto st130;
-		case 95: goto tr74;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 97: goto st130;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
-		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+		if ( 98 <= (*p) && (*p) <= 122 )
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st130:
 	if ( ++p == pe )
 		goto _test_eof130;
 case 130:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 101: goto st131;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 108: goto st131;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st131:
 	if ( ++p == pe )
 		goto _test_eof131;
 case 131:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 110: goto st132;
+		case 46: goto tr75;
+		case 84: goto st132;
+		case 95: goto tr75;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st132:
 	if ( ++p == pe )
 		goto _test_eof132;
 case 132:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 115: goto st133;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 101: goto st133;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st133:
 	if ( ++p == pe )
 		goto _test_eof133;
 case 133:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 111: goto st134;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 110: goto st134;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st134:
 	if ( ++p == pe )
 		goto _test_eof134;
 case 134:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 114: goto tr209;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 115: goto st135;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st135:
 	if ( ++p == pe )
 		goto _test_eof135;
 case 135:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 114: goto st136;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 111: goto st136;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st136:
 	if ( ++p == pe )
 		goto _test_eof136;
 case 136:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 116: goto tr212;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 114: goto tr212;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr211;
+		goto tr75;
+	goto tr74;
 st137:
 	if ( ++p == pe )
 		goto _test_eof137;
 case 137:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 109: goto tr213;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 114: goto st138;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st138:
 	if ( ++p == pe )
 		goto _test_eof138;
 case 138:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 109: goto st139;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 116: goto tr215;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr214;
 st139:
 	if ( ++p == pe )
 		goto _test_eof139;
 case 139:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 109: goto st140;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 109: goto tr216;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st140:
 	if ( ++p == pe )
 		goto _test_eof140;
 case 140:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 84: goto st141;
-		case 95: goto tr74;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 109: goto st141;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st141:
 	if ( ++p == pe )
 		goto _test_eof141;
 case 141:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 101: goto st142;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 109: goto st142;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st142:
 	if ( ++p == pe )
 		goto _test_eof142;
 case 142:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 110: goto st143;
+		case 46: goto tr75;
+		case 84: goto st143;
+		case 95: goto tr75;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st143:
 	if ( ++p == pe )
 		goto _test_eof143;
 case 143:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 115: goto st144;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 101: goto st144;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st144:
 	if ( ++p == pe )
 		goto _test_eof144;
 case 144:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 111: goto st145;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 110: goto st145;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st145:
 	if ( ++p == pe )
 		goto _test_eof145;
 case 145:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 114: goto tr221;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 115: goto st146;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st146:
 	if ( ++p == pe )
 		goto _test_eof146;
 case 146:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 97: goto st147;
-		case 101: goto st149;
-		case 105: goto st154;
-		case 114: goto st156;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 111: goto st147;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
-		if ( 98 <= (*p) && (*p) <= 122 )
-			goto tr74;
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st147:
 	if ( ++p == pe )
 		goto _test_eof147;
 case 147:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 110: goto st148;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 114: goto tr224;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st148:
 	if ( ++p == pe )
 		goto _test_eof148;
 case 148:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 104: goto tr228;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 97: goto st149;
+		case 101: goto st151;
+		case 105: goto st156;
+		case 114: goto st158;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
-		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+		if ( 98 <= (*p) && (*p) <= 122 )
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr227;
+		goto tr75;
+	goto tr74;
 st149:
 	if ( ++p == pe )
 		goto _test_eof149;
 case 149:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
+		case 46: goto tr75;
+		case 95: goto tr75;
 		case 110: goto st150;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st150:
 	if ( ++p == pe )
 		goto _test_eof150;
 case 150:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 115: goto st151;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 104: goto tr231;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr230;
 st151:
 	if ( ++p == pe )
 		goto _test_eof151;
 case 151:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 111: goto st152;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 110: goto st152;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st152:
 	if ( ++p == pe )
 		goto _test_eof152;
 case 152:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 114: goto tr232;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 115: goto st153;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
-tr232:
-#line 1 "NONE"
-	{te = p+1;}
-	goto st153;
+		goto tr75;
+	goto tr74;
 st153:
 	if ( ++p == pe )
 		goto _test_eof153;
 case 153:
-#line 3753 "patchExprScanner.cc"
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 58: goto st8;
-		case 95: goto tr74;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 111: goto st154;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr233;
-st8:
-	if ( ++p == pe )
-		goto _test_eof8;
-case 8:
-	if ( (*p) == 58 )
-		goto st9;
-	goto tr9;
-st9:
-	if ( ++p == pe )
-		goto _test_eof9;
-case 9:
-	if ( (*p) == 73 )
-		goto tr11;
-	goto tr9;
+		goto tr75;
+	goto tr74;
 st154:
 	if ( ++p == pe )
 		goto _test_eof154;
 case 154:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 109: goto st155;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 114: goto tr235;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
+tr235:
+#line 1 "NONE"
+	{te = p+1;}
+	goto st155;
 st155:
 	if ( ++p == pe )
 		goto _test_eof155;
 case 155:
+#line 3814 "patchExprScanner.cc"
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 101: goto tr236;
+		case 46: goto tr75;
+		case 58: goto st9;
+		case 95: goto tr75;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr236;
+st9:
+	if ( ++p == pe )
+		goto _test_eof9;
+case 9:
+	if ( (*p) == 58 )
+		goto st10;
+	goto tr11;
+st10:
+	if ( ++p == pe )
+		goto _test_eof10;
+case 10:
+	if ( (*p) == 73 )
+		goto tr13;
+	goto tr11;
 st156:
 	if ( ++p == pe )
 		goto _test_eof156;
 case 156:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 117: goto st157;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 109: goto st157;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st157:
 	if ( ++p == pe )
 		goto _test_eof157;
 case 157:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 101: goto tr238;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 101: goto tr239;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st158:
 	if ( ++p == pe )
 		goto _test_eof158;
 case 158:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 101: goto st159;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 117: goto st159;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st159:
 	if ( ++p == pe )
 		goto _test_eof159;
 case 159:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 99: goto st160;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 101: goto tr241;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st160:
 	if ( ++p == pe )
 		goto _test_eof160;
 case 160:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 116: goto st161;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 101: goto st161;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st161:
 	if ( ++p == pe )
 		goto _test_eof161;
 case 161:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 111: goto st162;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 99: goto st162;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st162:
 	if ( ++p == pe )
 		goto _test_eof162;
 case 162:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 114: goto tr243;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 116: goto st163;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
-tr243:
-#line 1 "NONE"
-	{te = p+1;}
-	goto st163;
+		goto tr75;
+	goto tr74;
 st163:
 	if ( ++p == pe )
 		goto _test_eof163;
 case 163:
-#line 3952 "patchExprScanner.cc"
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 58: goto st10;
-		case 95: goto tr74;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 111: goto st164;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr244;
-st10:
-	if ( ++p == pe )
-		goto _test_eof10;
-case 10:
-	if ( (*p) == 58 )
-		goto st11;
-	goto tr12;
-st11:
-	if ( ++p == pe )
-		goto _test_eof11;
-case 11:
-	switch( (*p) ) {
-		case 120: goto tr14;
-		case 121: goto tr15;
-		case 122: goto tr16;
-	}
-	goto tr12;
+		goto tr75;
+	goto tr74;
 st164:
 	if ( ++p == pe )
 		goto _test_eof164;
 case 164:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 101: goto st165;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 114: goto tr246;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
+tr246:
+#line 1 "NONE"
+	{te = p+1;}
+	goto st165;
 st165:
 	if ( ++p == pe )
 		goto _test_eof165;
 case 165:
+#line 4013 "patchExprScanner.cc"
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 105: goto st166;
+		case 46: goto tr75;
+		case 58: goto st11;
+		case 95: goto tr75;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr247;
+st11:
+	if ( ++p == pe )
+		goto _test_eof11;
+case 11:
+	if ( (*p) == 58 )
+		goto st12;
+	goto tr14;
+st12:
+	if ( ++p == pe )
+		goto _test_eof12;
+case 12:
+	switch( (*p) ) {
+		case 120: goto tr16;
+		case 121: goto tr17;
+		case 122: goto tr18;
+	}
+	goto tr14;
 st166:
 	if ( ++p == pe )
 		goto _test_eof166;
 case 166:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 103: goto st167;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 101: goto st167;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st167:
 	if ( ++p == pe )
 		goto _test_eof167;
 case 167:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 104: goto st168;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 105: goto st168;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st168:
 	if ( ++p == pe )
 		goto _test_eof168;
 case 168:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 116: goto st169;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 103: goto st169;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st169:
 	if ( ++p == pe )
 		goto _test_eof169;
 case 169:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 65: goto st170;
-		case 83: goto st176;
-		case 95: goto tr74;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 104: goto st170;
 	}
-	if ( (*p) < 66 ) {
+	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st170:
 	if ( ++p == pe )
 		goto _test_eof170;
 case 170:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 118: goto st171;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 116: goto st171;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st171:
 	if ( ++p == pe )
 		goto _test_eof171;
 case 171:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 101: goto st172;
+		case 46: goto tr75;
+		case 65: goto st172;
+		case 83: goto st178;
+		case 95: goto tr75;
 	}
-	if ( (*p) < 65 ) {
+	if ( (*p) < 66 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st172:
 	if ( ++p == pe )
 		goto _test_eof172;
 case 172:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 114: goto st173;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 118: goto st173;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st173:
 	if ( ++p == pe )
 		goto _test_eof173;
 case 173:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 97: goto st174;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 101: goto st174;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
-		if ( 98 <= (*p) && (*p) <= 122 )
-			goto tr74;
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st174:
 	if ( ++p == pe )
 		goto _test_eof174;
 case 174:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 103: goto st175;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 114: goto st175;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st175:
 	if ( ++p == pe )
 		goto _test_eof175;
 case 175:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 101: goto tr258;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 97: goto st176;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
-		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+		if ( 98 <= (*p) && (*p) <= 122 )
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st176:
 	if ( ++p == pe )
 		goto _test_eof176;
 case 176:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 117: goto st177;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 103: goto st177;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
+		goto tr75;
+	goto tr74;
 st177:
 	if ( ++p == pe )
 		goto _test_eof177;
 case 177:
 	switch( (*p) ) {
-		case 46: goto tr74;
-		case 95: goto tr74;
-		case 109: goto tr260;
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 101: goto tr261;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr74;
+			goto tr75;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr74;
+			goto tr75;
 	} else
-		goto tr74;
-	goto tr73;
-st12:
+		goto tr75;
+	goto tr74;
+st178:
 	if ( ++p == pe )
-		goto _test_eof12;
-case 12:
+		goto _test_eof178;
+case 178:
+	switch( (*p) ) {
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 117: goto st179;
+	}
+	if ( (*p) < 65 ) {
+		if ( 48 <= (*p) && (*p) <= 57 )
+			goto tr75;
+	} else if ( (*p) > 90 ) {
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto tr75;
+	} else
+		goto tr75;
+	goto tr74;
+st179:
+	if ( ++p == pe )
+		goto _test_eof179;
+case 179:
+	switch( (*p) ) {
+		case 46: goto tr75;
+		case 95: goto tr75;
+		case 109: goto tr263;
+	}
+	if ( (*p) < 65 ) {
+		if ( 48 <= (*p) && (*p) <= 57 )
+			goto tr75;
+	} else if ( (*p) > 90 ) {
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto tr75;
+	} else
+		goto tr75;
+	goto tr74;
+st13:
+	if ( ++p == pe )
+		goto _test_eof13;
+case 13:
 	if ( (*p) == 124 )
-		goto tr17;
+		goto tr19;
 	goto st0;
 	}
-	_test_eof13: cs = 13; goto _test_eof; 
 	_test_eof14: cs = 14; goto _test_eof; 
 	_test_eof15: cs = 15; goto _test_eof; 
+	_test_eof16: cs = 16; goto _test_eof; 
 	_test_eof1: cs = 1; goto _test_eof; 
 	_test_eof2: cs = 2; goto _test_eof; 
-	_test_eof16: cs = 16; goto _test_eof; 
+	_test_eof17: cs = 17; goto _test_eof; 
 	_test_eof3: cs = 3; goto _test_eof; 
 	_test_eof4: cs = 4; goto _test_eof; 
-	_test_eof17: cs = 17; goto _test_eof; 
 	_test_eof18: cs = 18; goto _test_eof; 
+	_test_eof19: cs = 19; goto _test_eof; 
 	_test_eof5: cs = 5; goto _test_eof; 
 	_test_eof6: cs = 6; goto _test_eof; 
-	_test_eof19: cs = 19; goto _test_eof; 
 	_test_eof20: cs = 20; goto _test_eof; 
 	_test_eof21: cs = 21; goto _test_eof; 
 	_test_eof22: cs = 22; goto _test_eof; 
-	_test_eof7: cs = 7; goto _test_eof; 
 	_test_eof23: cs = 23; goto _test_eof; 
+	_test_eof7: cs = 7; goto _test_eof; 
 	_test_eof24: cs = 24; goto _test_eof; 
 	_test_eof25: cs = 25; goto _test_eof; 
 	_test_eof26: cs = 26; goto _test_eof; 
@@ -4304,6 +4364,7 @@ case 12:
 	_test_eof66: cs = 66; goto _test_eof; 
 	_test_eof67: cs = 67; goto _test_eof; 
 	_test_eof68: cs = 68; goto _test_eof; 
+	_test_eof8: cs = 8; goto _test_eof; 
 	_test_eof69: cs = 69; goto _test_eof; 
 	_test_eof70: cs = 70; goto _test_eof; 
 	_test_eof71: cs = 71; goto _test_eof; 
@@ -4389,10 +4450,10 @@ case 12:
 	_test_eof151: cs = 151; goto _test_eof; 
 	_test_eof152: cs = 152; goto _test_eof; 
 	_test_eof153: cs = 153; goto _test_eof; 
-	_test_eof8: cs = 8; goto _test_eof; 
-	_test_eof9: cs = 9; goto _test_eof; 
 	_test_eof154: cs = 154; goto _test_eof; 
 	_test_eof155: cs = 155; goto _test_eof; 
+	_test_eof9: cs = 9; goto _test_eof; 
+	_test_eof10: cs = 10; goto _test_eof; 
 	_test_eof156: cs = 156; goto _test_eof; 
 	_test_eof157: cs = 157; goto _test_eof; 
 	_test_eof158: cs = 158; goto _test_eof; 
@@ -4401,10 +4462,10 @@ case 12:
 	_test_eof161: cs = 161; goto _test_eof; 
 	_test_eof162: cs = 162; goto _test_eof; 
 	_test_eof163: cs = 163; goto _test_eof; 
-	_test_eof10: cs = 10; goto _test_eof; 
-	_test_eof11: cs = 11; goto _test_eof; 
 	_test_eof164: cs = 164; goto _test_eof; 
 	_test_eof165: cs = 165; goto _test_eof; 
+	_test_eof11: cs = 11; goto _test_eof; 
+	_test_eof12: cs = 12; goto _test_eof; 
 	_test_eof166: cs = 166; goto _test_eof; 
 	_test_eof167: cs = 167; goto _test_eof; 
 	_test_eof168: cs = 168; goto _test_eof; 
@@ -4417,189 +4478,193 @@ case 12:
 	_test_eof175: cs = 175; goto _test_eof; 
 	_test_eof176: cs = 176; goto _test_eof; 
 	_test_eof177: cs = 177; goto _test_eof; 
-	_test_eof12: cs = 12; goto _test_eof; 
+	_test_eof178: cs = 178; goto _test_eof; 
+	_test_eof179: cs = 179; goto _test_eof; 
+	_test_eof13: cs = 13; goto _test_eof; 
 
 	_test_eof: {}
 	if ( p == eof )
 	{
 	switch ( cs ) {
-	case 14: goto tr58;
 	case 15: goto tr59;
-	case 16: goto tr61;
-	case 17: goto tr63;
-	case 18: goto tr66;
+	case 16: goto tr60;
+	case 17: goto tr62;
+	case 18: goto tr64;
+	case 19: goto tr67;
 	case 5: goto tr5;
 	case 6: goto tr5;
-	case 19: goto tr66;
-	case 20: goto tr68;
-	case 21: goto tr66;
-	case 22: goto tr69;
-	case 23: goto tr71;
-	case 24: goto tr73;
-	case 25: goto tr75;
-	case 26: goto tr73;
-	case 27: goto tr73;
-	case 28: goto tr73;
-	case 29: goto tr73;
-	case 30: goto tr73;
-	case 31: goto tr73;
-	case 32: goto tr73;
-	case 33: goto tr73;
-	case 34: goto tr73;
-	case 35: goto tr73;
-	case 36: goto tr73;
-	case 37: goto tr91;
-	case 38: goto tr73;
-	case 39: goto tr73;
-	case 40: goto tr73;
-	case 41: goto tr73;
-	case 42: goto tr73;
-	case 43: goto tr73;
-	case 44: goto tr73;
-	case 45: goto tr73;
-	case 46: goto tr73;
-	case 47: goto tr73;
-	case 48: goto tr73;
-	case 49: goto tr73;
-	case 50: goto tr106;
-	case 51: goto tr73;
-	case 52: goto tr73;
-	case 53: goto tr73;
-	case 54: goto tr73;
-	case 55: goto tr73;
-	case 56: goto tr73;
-	case 57: goto tr73;
-	case 58: goto tr73;
-	case 59: goto tr73;
-	case 60: goto tr73;
-	case 61: goto tr73;
-	case 62: goto tr73;
-	case 63: goto tr73;
-	case 64: goto tr73;
-	case 65: goto tr73;
-	case 66: goto tr73;
-	case 67: goto tr73;
-	case 68: goto tr73;
-	case 69: goto tr73;
-	case 70: goto tr73;
-	case 71: goto tr73;
-	case 72: goto tr73;
-	case 73: goto tr73;
-	case 74: goto tr73;
-	case 75: goto tr73;
-	case 76: goto tr73;
-	case 77: goto tr73;
-	case 78: goto tr73;
-	case 79: goto tr73;
-	case 80: goto tr73;
-	case 81: goto tr139;
-	case 82: goto tr73;
-	case 83: goto tr73;
-	case 84: goto tr73;
-	case 85: goto tr146;
-	case 86: goto tr73;
-	case 87: goto tr73;
-	case 88: goto tr73;
-	case 89: goto tr73;
-	case 90: goto tr73;
-	case 91: goto tr154;
-	case 92: goto tr73;
-	case 93: goto tr73;
-	case 94: goto tr73;
-	case 95: goto tr73;
-	case 96: goto tr73;
-	case 97: goto tr73;
-	case 98: goto tr73;
-	case 99: goto tr73;
-	case 100: goto tr73;
-	case 101: goto tr73;
-	case 102: goto tr73;
-	case 103: goto tr73;
-	case 104: goto tr73;
-	case 105: goto tr171;
-	case 106: goto tr73;
-	case 107: goto tr73;
-	case 108: goto tr73;
-	case 109: goto tr73;
-	case 110: goto tr73;
-	case 111: goto tr73;
-	case 112: goto tr73;
-	case 113: goto tr73;
-	case 114: goto tr73;
-	case 115: goto tr73;
-	case 116: goto tr73;
-	case 117: goto tr191;
-	case 118: goto tr73;
-	case 119: goto tr73;
-	case 120: goto tr73;
-	case 121: goto tr73;
-	case 122: goto tr73;
-	case 123: goto tr73;
-	case 124: goto tr73;
-	case 125: goto tr73;
-	case 126: goto tr73;
-	case 127: goto tr73;
-	case 128: goto tr73;
-	case 129: goto tr73;
-	case 130: goto tr73;
-	case 131: goto tr73;
-	case 132: goto tr73;
-	case 133: goto tr73;
-	case 134: goto tr73;
-	case 135: goto tr73;
-	case 136: goto tr211;
-	case 137: goto tr73;
-	case 138: goto tr73;
-	case 139: goto tr73;
-	case 140: goto tr73;
-	case 141: goto tr73;
-	case 142: goto tr73;
-	case 143: goto tr73;
-	case 144: goto tr73;
-	case 145: goto tr73;
-	case 146: goto tr73;
-	case 147: goto tr73;
-	case 148: goto tr227;
-	case 149: goto tr73;
-	case 150: goto tr73;
-	case 151: goto tr73;
-	case 152: goto tr73;
-	case 153: goto tr233;
+	case 20: goto tr67;
+	case 21: goto tr69;
+	case 22: goto tr67;
+	case 23: goto tr70;
+	case 24: goto tr72;
+	case 25: goto tr74;
+	case 26: goto tr76;
+	case 27: goto tr74;
+	case 28: goto tr74;
+	case 29: goto tr74;
+	case 30: goto tr74;
+	case 31: goto tr74;
+	case 32: goto tr74;
+	case 33: goto tr74;
+	case 34: goto tr74;
+	case 35: goto tr74;
+	case 36: goto tr74;
+	case 37: goto tr74;
+	case 38: goto tr92;
+	case 39: goto tr74;
+	case 40: goto tr74;
+	case 41: goto tr74;
+	case 42: goto tr74;
+	case 43: goto tr74;
+	case 44: goto tr74;
+	case 45: goto tr74;
+	case 46: goto tr74;
+	case 47: goto tr74;
+	case 48: goto tr74;
+	case 49: goto tr74;
+	case 50: goto tr74;
+	case 51: goto tr107;
+	case 52: goto tr74;
+	case 53: goto tr74;
+	case 54: goto tr74;
+	case 55: goto tr74;
+	case 56: goto tr74;
+	case 57: goto tr74;
+	case 58: goto tr74;
+	case 59: goto tr74;
+	case 60: goto tr74;
+	case 61: goto tr74;
+	case 62: goto tr74;
+	case 63: goto tr74;
+	case 64: goto tr74;
+	case 65: goto tr74;
+	case 66: goto tr74;
+	case 67: goto tr74;
+	case 68: goto tr74;
 	case 8: goto tr9;
-	case 9: goto tr9;
-	case 154: goto tr73;
-	case 155: goto tr73;
-	case 156: goto tr73;
-	case 157: goto tr73;
-	case 158: goto tr73;
-	case 159: goto tr73;
-	case 160: goto tr73;
-	case 161: goto tr73;
-	case 162: goto tr73;
-	case 163: goto tr244;
-	case 10: goto tr12;
-	case 11: goto tr12;
-	case 164: goto tr73;
-	case 165: goto tr73;
-	case 166: goto tr73;
-	case 167: goto tr73;
-	case 168: goto tr73;
-	case 169: goto tr73;
-	case 170: goto tr73;
-	case 171: goto tr73;
-	case 172: goto tr73;
-	case 173: goto tr73;
-	case 174: goto tr73;
-	case 175: goto tr73;
-	case 176: goto tr73;
-	case 177: goto tr73;
+	case 69: goto tr74;
+	case 70: goto tr74;
+	case 71: goto tr74;
+	case 72: goto tr74;
+	case 73: goto tr74;
+	case 74: goto tr74;
+	case 75: goto tr74;
+	case 76: goto tr74;
+	case 77: goto tr74;
+	case 78: goto tr74;
+	case 79: goto tr74;
+	case 80: goto tr74;
+	case 81: goto tr74;
+	case 82: goto tr74;
+	case 83: goto tr142;
+	case 84: goto tr74;
+	case 85: goto tr74;
+	case 86: goto tr74;
+	case 87: goto tr149;
+	case 88: goto tr74;
+	case 89: goto tr74;
+	case 90: goto tr74;
+	case 91: goto tr74;
+	case 92: goto tr74;
+	case 93: goto tr157;
+	case 94: goto tr74;
+	case 95: goto tr74;
+	case 96: goto tr74;
+	case 97: goto tr74;
+	case 98: goto tr74;
+	case 99: goto tr74;
+	case 100: goto tr74;
+	case 101: goto tr74;
+	case 102: goto tr74;
+	case 103: goto tr74;
+	case 104: goto tr74;
+	case 105: goto tr74;
+	case 106: goto tr74;
+	case 107: goto tr174;
+	case 108: goto tr74;
+	case 109: goto tr74;
+	case 110: goto tr74;
+	case 111: goto tr74;
+	case 112: goto tr74;
+	case 113: goto tr74;
+	case 114: goto tr74;
+	case 115: goto tr74;
+	case 116: goto tr74;
+	case 117: goto tr74;
+	case 118: goto tr74;
+	case 119: goto tr194;
+	case 120: goto tr74;
+	case 121: goto tr74;
+	case 122: goto tr74;
+	case 123: goto tr74;
+	case 124: goto tr74;
+	case 125: goto tr74;
+	case 126: goto tr74;
+	case 127: goto tr74;
+	case 128: goto tr74;
+	case 129: goto tr74;
+	case 130: goto tr74;
+	case 131: goto tr74;
+	case 132: goto tr74;
+	case 133: goto tr74;
+	case 134: goto tr74;
+	case 135: goto tr74;
+	case 136: goto tr74;
+	case 137: goto tr74;
+	case 138: goto tr214;
+	case 139: goto tr74;
+	case 140: goto tr74;
+	case 141: goto tr74;
+	case 142: goto tr74;
+	case 143: goto tr74;
+	case 144: goto tr74;
+	case 145: goto tr74;
+	case 146: goto tr74;
+	case 147: goto tr74;
+	case 148: goto tr74;
+	case 149: goto tr74;
+	case 150: goto tr230;
+	case 151: goto tr74;
+	case 152: goto tr74;
+	case 153: goto tr74;
+	case 154: goto tr74;
+	case 155: goto tr236;
+	case 9: goto tr11;
+	case 10: goto tr11;
+	case 156: goto tr74;
+	case 157: goto tr74;
+	case 158: goto tr74;
+	case 159: goto tr74;
+	case 160: goto tr74;
+	case 161: goto tr74;
+	case 162: goto tr74;
+	case 163: goto tr74;
+	case 164: goto tr74;
+	case 165: goto tr247;
+	case 11: goto tr14;
+	case 12: goto tr14;
+	case 166: goto tr74;
+	case 167: goto tr74;
+	case 168: goto tr74;
+	case 169: goto tr74;
+	case 170: goto tr74;
+	case 171: goto tr74;
+	case 172: goto tr74;
+	case 173: goto tr74;
+	case 174: goto tr74;
+	case 175: goto tr74;
+	case 176: goto tr74;
+	case 177: goto tr74;
+	case 178: goto tr74;
+	case 179: goto tr74;
 	}
 	}
 
 	_out: {}
 	}
 
-#line 708 "patchExprScanner.rl"
+#line 728 "patchExprScanner.rl"
    /* ^^^ FSM execution here ^^^ */;
 
     if (0 == cs)
diff --git a/src/finiteVolume/expressions/patch/patchExprScanner.rl b/src/finiteVolume/expressions/patch/patchExprScanner.rl
index 4ba56036212c21c4e32a043649bcfeaf8ee31b02..34f8ddd84ae2d9aceab827a7da001b5eb6345ba7 100644
--- a/src/finiteVolume/expressions/patch/patchExprScanner.rl
+++ b/src/finiteVolume/expressions/patch/patchExprScanner.rl
@@ -352,12 +352,16 @@ static int driverTokenType
 
     decimal = ((digit* '.' digit+) | (digit+ '.'?)) ;
     number  = ((digit+ | decimal) ([Ee][\-+]? digit+)?) ;
-    ident   = ((alpha|'_') . ((alnum|[._])**)) ;
+    identifier = ((alpha|'_') . ((alnum|[._])**)) ;
     dquoted = '"' [^\"]+ '"' ;
     squoted = "'" [^\']+ "'" ;
 
+    ## Allow 'fn:' prefix for function identifier
+    ident = ('fn:')? identifier ;
 
+    ## ===========
     ## The scanner
+    ## ===========
     main := |*
         space*;
 
@@ -571,6 +575,22 @@ bool Foam::expressions::patchExpr::scanner::dispatch_ident
 
         do
         {
+            #undef  doLocalCode
+            #define doLocalCode(TokType, Type)                      \
+            if (driver_.isFunction<Type>(funcName))                 \
+            {                                                       \
+                ident = std::move(funcName);                        \
+                tokType = TokType;                                  \
+                break;                                              \
+            }
+
+            #ifdef TOK_SCALAR_FUNCTION_ID
+            doLocalCode(TOK_SCALAR_FUNCTION_ID, scalar);
+            #endif
+            #ifdef TOK_VECTOR_FUNCTION_ID
+            doLocalCode(TOK_VECTOR_FUNCTION_ID, vector);
+            #endif
+            #undef doLocalCode
         }
         while (false);
     }
diff --git a/src/finiteVolume/expressions/volume/volumeExprLemonParser.lyy-m4 b/src/finiteVolume/expressions/volume/volumeExprLemonParser.lyy-m4
index 23ecd5e99e4e011e0b21875bfe3e9e9a61517dce..c280458f594dd5e4a3fc79f12c354de32e11b93b 100644
--- a/src/finiteVolume/expressions/volume/volumeExprLemonParser.lyy-m4
+++ b/src/finiteVolume/expressions/volume/volumeExprLemonParser.lyy-m4
@@ -180,8 +180,11 @@ svalue (lhs) ::= DELTA_T LPAREN RPAREN . { lhs = driver->deltaT(); }
 
 svalue (lhs) ::= SCALAR_FUNCTION_ID (name) LPAREN RPAREN .
 {
-    driver->reportFatal("Not implemented: " + make_obj(name.name_));
-    lhs = 0;
+    lhs = driver->getFunctionValue<Foam::scalar>
+    (
+        make_obj(name.name_),
+        driver->timeValue()
+    );
 }
 
 
@@ -200,8 +203,12 @@ vvalue (lhs) ::= VECTOR_VALUE (tok) .
 
 vvalue (lhs) ::= VECTOR_FUNCTION_ID (name) LPAREN RPAREN .
 {
-    driver->reportFatal("Not implemented: " + make_obj(name.name_));
-    lhs = new Foam::vector(0,0,0);
+    auto val = driver->getFunctionValue<Foam::vector>
+    (
+        make_obj(name.name_),
+        driver->timeValue()
+    );
+    lhs = new Foam::vector(val);
 }
 
 
@@ -261,8 +268,12 @@ _target_ (lhs) ::= RAND LPAREN NUMBER (seed) RPAREN .
 _target_ (lhs) ::= SCALAR_FUNCTION_ID (name) LPAREN _scalar_arg_ (values) RPAREN.
 {
     lhs = _new_target_;
-    (void) make_obj(values);
-    driver->reportFatal("Not implemented: " + make_obj(name.name_));
+    driver->fillFunctionValues<_value_type_>
+    (
+        *lhs,
+        make_obj(name.name_),
+        make_obj(values)
+    );
 }
 
 
@@ -291,8 +302,12 @@ rules_vector_functions()
 _target_ (lhs) ::= VECTOR_FUNCTION_ID (name) LPAREN _scalar_arg_ (values) RPAREN.
 {
     lhs = _new_target_;
-    (void) make_obj(values);
-    driver->reportFatal("Not implemented: " + make_obj(name.name_));
+    driver->fillFunctionValues<_value_type_>
+    (
+        *lhs,
+        make_obj(name.name_),
+        make_obj(values)
+    );
 }
 
 
@@ -420,8 +435,12 @@ rule_binary_assign(_target_, _target_, _target_, HYPOT, Foam::hypotOp<_value_typ
 _target_ (lhs) ::= SCALAR_FUNCTION_ID (name) LPAREN _scalar_arg_ (values) RPAREN.
 {
     lhs = _new_target_;
-    (void) make_obj(values);
-    driver->reportFatal("Not implemented: " + make_obj(name.name_));
+    driver->fillFunctionValues<_value_type_>
+    (
+        *lhs,
+        make_obj(name.name_),
+        make_obj(values)
+    );
 }
 
 
@@ -448,8 +467,12 @@ rules_vector_functions()
 _target_ (lhs) ::= VECTOR_FUNCTION_ID (name) LPAREN _scalar_arg_ (values) RPAREN.
 {
     lhs = _new_target_;
-    (void) make_obj(values);
-    driver->reportFatal("Not implemented: " + make_obj(name.name_));
+    driver->fillFunctionValues<_value_type_>
+    (
+        *lhs,
+        make_obj(name.name_),
+        make_obj(values)
+    );
 }
 
 
@@ -584,8 +607,12 @@ rule_binary_assign(_target_, _target_, _target_, HYPOT, Foam::hypotOp<_value_typ
 _target_ (lhs) ::= SCALAR_FUNCTION_ID (name) LPAREN _scalar_arg_ (values) RPAREN.
 {
     lhs = _new_target_;
-    (void) make_obj(values);
-    driver->reportFatal("Not implemented: " + make_obj(name.name_));
+    driver->fillFunctionValues<_value_type_>
+    (
+        *lhs,
+        make_obj(name.name_),
+        make_obj(values)
+    );
 }
 
 
@@ -659,8 +686,12 @@ rules_vector_functions()
 _target_ (lhs) ::= VECTOR_FUNCTION_ID (name) LPAREN _scalar_arg_ (values) RPAREN.
 {
     lhs = _new_target_;
-    (void) make_obj(values);
-    driver->reportFatal("Not implemented: " + make_obj(name.name_));
+    driver->fillFunctionValues<_value_type_>
+    (
+        *lhs,
+        make_obj(name.name_),
+        make_obj(values)
+    );
 }
 
 /*---------------------------------------------------------------------------*\
diff --git a/src/finiteVolume/expressions/volume/volumeExprScanner.cc b/src/finiteVolume/expressions/volume/volumeExprScanner.cc
index 735eacbec7d2b2ea7895323b81f4c39d72ae7383..ace78ea62176dae234fc5d9f4b262111464c415f 100644
--- a/src/finiteVolume/expressions/volume/volumeExprScanner.cc
+++ b/src/finiteVolume/expressions/volume/volumeExprScanner.cc
@@ -330,14 +330,14 @@ static int driverTokenType
 
 
 #line 333 "volumeExprScanner.cc"
-static const int volumeExpr_start = 13;
-static const int volumeExpr_first_final = 13;
+static const int volumeExpr_start = 14;
+static const int volumeExpr_first_final = 14;
 static const int volumeExpr_error = 0;
 
-static const int volumeExpr_en_main = 13;
+static const int volumeExpr_en_main = 14;
 
 
-#line 480 "volumeExprScanner.rl"
+#line 484 "volumeExprScanner.rl"
 
 
 
@@ -446,6 +446,22 @@ bool Foam::expressions::volumeExpr::scanner::dispatch_ident
 
         do
         {
+            #undef  doLocalCode
+            #define doLocalCode(TokType, Type)                      \
+            if (driver_.isFunction<Type>(funcName))                 \
+            {                                                       \
+                ident = std::move(funcName);                        \
+                tokType = TokType;                                  \
+                break;                                              \
+            }
+
+            #ifdef TOK_SCALAR_FUNCTION_ID
+            doLocalCode(TOK_SCALAR_FUNCTION_ID, scalar);
+            #endif
+            #ifdef TOK_VECTOR_FUNCTION_ID
+            doLocalCode(TOK_VECTOR_FUNCTION_ID, vector);
+            #endif
+            #undef doLocalCode
         }
         while (false);
     }
@@ -579,7 +595,7 @@ bool Foam::expressions::volumeExpr::scanner::process
 
     // Initialize FSM variables
     
-#line 583 "volumeExprScanner.cc"
+#line 599 "volumeExprScanner.cc"
 	{
 	cs = volumeExpr_start;
 	ts = 0;
@@ -587,11 +603,11 @@ bool Foam::expressions::volumeExpr::scanner::process
 	act = 0;
 	}
 
-#line 720 "volumeExprScanner.rl"
+#line 740 "volumeExprScanner.rl"
    /* ^^^ FSM initialization here ^^^ */;
 
     
-#line 595 "volumeExprScanner.cc"
+#line 611 "volumeExprScanner.cc"
 	{
 	if ( p == pe )
 		goto _test_eof;
@@ -605,7 +621,7 @@ tr2:
         dispatch_ident(driver_, word(ts, te-ts, false));
         driver_.parsePosition() = (p-buf);
     }}
-	goto st13;
+	goto st14;
 tr4:
 #line 358 "volumeExprScanner.rl"
 	{te = p+1;{
@@ -614,7 +630,7 @@ tr4:
         dispatch_ident(driver_, word(ts, te-ts, false));
         driver_.parsePosition() = (p-buf);
     }}
-	goto st13;
+	goto st14;
 tr5:
 #line 333 "volumeExprScanner.rl"
 	{{p = ((te))-1;}{
@@ -641,108 +657,117 @@ tr5:
 
         driver_.parsePosition() = (p-buf);
     }}
-	goto st13;
+	goto st14;
 tr8:
-#line 402 "volumeExprScanner.rl"
+#line 406 "volumeExprScanner.rl"
 	{te = p+1;{ EMIT_TOKEN(EQUAL); }}
-	goto st13;
+	goto st14;
 tr9:
-#line 456 "volumeExprScanner.rl"
-	{{p = ((te))-1;}{ EMIT_TOKEN(TENSOR); }}
-	goto st13;
+#line 358 "volumeExprScanner.rl"
+	{{p = ((te))-1;}{
+        // Emit identifier
+        driver_.parsePosition() = (ts-buf);
+        dispatch_ident(driver_, word(ts, te-ts, false));
+        driver_.parsePosition() = (p-buf);
+    }}
+	goto st14;
 tr11:
-#line 467 "volumeExprScanner.rl"
+#line 460 "volumeExprScanner.rl"
+	{{p = ((te))-1;}{ EMIT_TOKEN(TENSOR); }}
+	goto st14;
+tr13:
+#line 471 "volumeExprScanner.rl"
 	{te = p+1;{ EMIT_TOKEN(IDENTITY_TENSOR); }}
-	goto st13;
-tr12:
-#line 455 "volumeExprScanner.rl"
-	{{p = ((te))-1;}{ EMIT_TOKEN(VECTOR); }}
-	goto st13;
+	goto st14;
 tr14:
-#line 464 "volumeExprScanner.rl"
+#line 459 "volumeExprScanner.rl"
+	{{p = ((te))-1;}{ EMIT_TOKEN(VECTOR); }}
+	goto st14;
+tr16:
+#line 468 "volumeExprScanner.rl"
 	{te = p+1;{ EMIT_VECTOR_TOKEN(1,0,0); }}
-	goto st13;
-tr15:
-#line 465 "volumeExprScanner.rl"
+	goto st14;
+tr17:
+#line 469 "volumeExprScanner.rl"
 	{te = p+1;{ EMIT_VECTOR_TOKEN(0,1,0); }}
-	goto st13;
-tr16:
-#line 466 "volumeExprScanner.rl"
+	goto st14;
+tr18:
+#line 470 "volumeExprScanner.rl"
 	{te = p+1;{ EMIT_VECTOR_TOKEN(0,0,1); }}
-	goto st13;
-tr17:
-#line 405 "volumeExprScanner.rl"
+	goto st14;
+tr19:
+#line 409 "volumeExprScanner.rl"
 	{te = p+1;{ EMIT_TOKEN(LOR); }}
-	goto st13;
-tr21:
-#line 387 "volumeExprScanner.rl"
+	goto st14;
+tr23:
+#line 391 "volumeExprScanner.rl"
 	{te = p+1;{ EMIT_TOKEN(PERCENT); }}
-	goto st13;
-tr24:
-#line 388 "volumeExprScanner.rl"
+	goto st14;
+tr26:
+#line 392 "volumeExprScanner.rl"
 	{te = p+1;{ EMIT_TOKEN(LPAREN); }}
-	goto st13;
-tr25:
-#line 389 "volumeExprScanner.rl"
+	goto st14;
+tr27:
+#line 393 "volumeExprScanner.rl"
 	{te = p+1;{ EMIT_TOKEN(RPAREN); }}
-	goto st13;
-tr26:
-#line 390 "volumeExprScanner.rl"
+	goto st14;
+tr28:
+#line 394 "volumeExprScanner.rl"
 	{te = p+1;{ EMIT_TOKEN(TIMES); }}
-	goto st13;
-tr27:
-#line 391 "volumeExprScanner.rl"
+	goto st14;
+tr29:
+#line 395 "volumeExprScanner.rl"
 	{te = p+1;{ EMIT_TOKEN(PLUS); }}
-	goto st13;
-tr28:
-#line 393 "volumeExprScanner.rl"
+	goto st14;
+tr30:
+#line 397 "volumeExprScanner.rl"
 	{te = p+1;{ EMIT_TOKEN(COMMA); }}
-	goto st13;
-tr29:
-#line 392 "volumeExprScanner.rl"
-	{te = p+1;{ EMIT_TOKEN(MINUS); }}
-	goto st13;
+	goto st14;
 tr31:
-#line 395 "volumeExprScanner.rl"
-	{te = p+1;{ EMIT_TOKEN(DIVIDE); }}
-	goto st13;
+#line 396 "volumeExprScanner.rl"
+	{te = p+1;{ EMIT_TOKEN(MINUS); }}
+	goto st14;
 tr33:
-#line 397 "volumeExprScanner.rl"
+#line 399 "volumeExprScanner.rl"
+	{te = p+1;{ EMIT_TOKEN(DIVIDE); }}
+	goto st14;
+tr35:
+#line 401 "volumeExprScanner.rl"
 	{te = p+1;{ EMIT_TOKEN(COLON); }}
-	goto st13;
-tr37:
-#line 396 "volumeExprScanner.rl"
+	goto st14;
+tr39:
+#line 400 "volumeExprScanner.rl"
 	{te = p+1;{ EMIT_TOKEN(QUESTION); }}
-	goto st13;
-tr40:
-#line 408 "volumeExprScanner.rl"
+	goto st14;
+tr41:
+#line 412 "volumeExprScanner.rl"
 	{te = p+1;{ EMIT_TOKEN(BIT_XOR); }}
-	goto st13;
-tr57:
-#line 381 "volumeExprScanner.rl"
-	{te = p;p--;}
-	goto st13;
+	goto st14;
 tr58:
-#line 386 "volumeExprScanner.rl"
-	{te = p;p--;{ EMIT_TOKEN(LNOT); }}
-	goto st13;
+#line 385 "volumeExprScanner.rl"
+	{te = p;p--;}
+	goto st14;
 tr59:
-#line 403 "volumeExprScanner.rl"
-	{te = p+1;{ EMIT_TOKEN(NOT_EQUAL); }}
-	goto st13;
+#line 390 "volumeExprScanner.rl"
+	{te = p;p--;{ EMIT_TOKEN(LNOT); }}
+	goto st14;
 tr60:
-#line 406 "volumeExprScanner.rl"
-	{te = p;p--;{ EMIT_TOKEN(BIT_AND); }}
-	goto st13;
+#line 407 "volumeExprScanner.rl"
+	{te = p+1;{ EMIT_TOKEN(NOT_EQUAL); }}
+	goto st14;
 tr61:
-#line 404 "volumeExprScanner.rl"
-	{te = p+1;{ EMIT_TOKEN(LAND); }}
-	goto st13;
+#line 410 "volumeExprScanner.rl"
+	{te = p;p--;{ EMIT_TOKEN(BIT_AND); }}
+	goto st14;
 tr62:
-#line 394 "volumeExprScanner.rl"
+#line 408 "volumeExprScanner.rl"
+	{te = p+1;{ EMIT_TOKEN(LAND); }}
+	goto st14;
+tr63:
+#line 398 "volumeExprScanner.rl"
 	{te = p;p--;{ EMIT_TOKEN(DOT); }}
-	goto st13;
-tr65:
+	goto st14;
+tr66:
 #line 333 "volumeExprScanner.rl"
 	{te = p;p--;{
         // Emit number
@@ -768,8 +793,8 @@ tr65:
 
         driver_.parsePosition() = (p-buf);
     }}
-	goto st13;
-tr67:
+	goto st14;
+tr68:
 #line 365 "volumeExprScanner.rl"
 	{te = p;p--;{
         // Tokenized ".method" - dispatch '.' and "method" separately
@@ -777,24 +802,24 @@ tr67:
         dispatch_method(driver_, word(ts+1, te-ts-1, false));
         driver_.parsePosition() = (p-buf);
     }}
-	goto st13;
-tr68:
-#line 398 "volumeExprScanner.rl"
-	{te = p;p--;{ EMIT_TOKEN(LESS); }}
-	goto st13;
+	goto st14;
 tr69:
-#line 399 "volumeExprScanner.rl"
-	{te = p+1;{ EMIT_TOKEN(LESS_EQ); }}
-	goto st13;
+#line 402 "volumeExprScanner.rl"
+	{te = p;p--;{ EMIT_TOKEN(LESS); }}
+	goto st14;
 tr70:
-#line 400 "volumeExprScanner.rl"
-	{te = p;p--;{ EMIT_TOKEN(GREATER); }}
-	goto st13;
+#line 403 "volumeExprScanner.rl"
+	{te = p+1;{ EMIT_TOKEN(LESS_EQ); }}
+	goto st14;
 tr71:
-#line 401 "volumeExprScanner.rl"
-	{te = p+1;{ EMIT_TOKEN(GREATER_EQ); }}
-	goto st13;
+#line 404 "volumeExprScanner.rl"
+	{te = p;p--;{ EMIT_TOKEN(GREATER); }}
+	goto st14;
 tr72:
+#line 405 "volumeExprScanner.rl"
+	{te = p+1;{ EMIT_TOKEN(GREATER_EQ); }}
+	goto st14;
+tr73:
 #line 358 "volumeExprScanner.rl"
 	{te = p;p--;{
         // Emit identifier
@@ -802,8 +827,8 @@ tr72:
         dispatch_ident(driver_, word(ts, te-ts, false));
         driver_.parsePosition() = (p-buf);
     }}
-	goto st13;
-tr74:
+	goto st14;
+tr75:
 #line 1 "NONE"
 	{	switch( act ) {
 	case 26:
@@ -918,131 +943,131 @@ tr74:
 	break;
 	}
 	}
-	goto st13;
-tr90:
-#line 430 "volumeExprScanner.rl"
+	goto st14;
+tr91:
+#line 434 "volumeExprScanner.rl"
 	{te = p;p--;{ EMIT_TOKEN(ATAN); }}
-	goto st13;
-tr105:
-#line 426 "volumeExprScanner.rl"
+	goto st14;
+tr106:
+#line 430 "volumeExprScanner.rl"
 	{te = p;p--;{ EMIT_TOKEN(COS); }}
-	goto st13;
-tr126:
-#line 419 "volumeExprScanner.rl"
+	goto st14;
+tr129:
+#line 423 "volumeExprScanner.rl"
 	{te = p;p--;{ EMIT_TOKEN(LOG); }}
-	goto st13;
-tr133:
-#line 435 "volumeExprScanner.rl"
-	{te = p;p--;{ EMIT_TOKEN(MAG); }}
-	goto st13;
-tr140:
+	goto st14;
+tr136:
 #line 439 "volumeExprScanner.rl"
+	{te = p;p--;{ EMIT_TOKEN(MAG); }}
+	goto st14;
+tr143:
+#line 443 "volumeExprScanner.rl"
 	{te = p;p--;{ EMIT_TOKEN(NEG); }}
-	goto st13;
-tr146:
-#line 438 "volumeExprScanner.rl"
+	goto st14;
+tr149:
+#line 442 "volumeExprScanner.rl"
 	{te = p;p--;{ EMIT_TOKEN(POS); }}
-	goto st13;
-tr165:
-#line 425 "volumeExprScanner.rl"
+	goto st14;
+tr168:
+#line 429 "volumeExprScanner.rl"
 	{te = p;p--;{ EMIT_TOKEN(SIN); }}
-	goto st13;
-tr181:
-#line 422 "volumeExprScanner.rl"
+	goto st14;
+tr184:
+#line 426 "volumeExprScanner.rl"
 	{te = p;p--;{ EMIT_TOKEN(SQR); }}
-	goto st13;
-tr197:
-#line 427 "volumeExprScanner.rl"
+	goto st14;
+tr200:
+#line 431 "volumeExprScanner.rl"
 	{te = p;p--;{ EMIT_TOKEN(TAN); }}
-	goto st13;
-tr203:
-#line 456 "volumeExprScanner.rl"
+	goto st14;
+tr206:
+#line 460 "volumeExprScanner.rl"
 	{te = p;p--;{ EMIT_TOKEN(TENSOR); }}
-	goto st13;
-tr214:
-#line 455 "volumeExprScanner.rl"
+	goto st14;
+tr217:
+#line 459 "volumeExprScanner.rl"
 	{te = p;p--;{ EMIT_TOKEN(VECTOR); }}
-	goto st13;
-st13:
+	goto st14;
+st14:
 #line 1 "NONE"
 	{ts = 0;}
 	if ( ++p == pe )
-		goto _test_eof13;
-case 13:
+		goto _test_eof14;
+case 14:
 #line 1 "NONE"
 	{ts = p;}
-#line 975 "volumeExprScanner.cc"
+#line 1000 "volumeExprScanner.cc"
 	switch( (*p) ) {
-		case 32: goto st14;
-		case 33: goto st15;
+		case 32: goto st15;
+		case 33: goto st16;
 		case 34: goto st1;
-		case 37: goto tr21;
-		case 38: goto st16;
+		case 37: goto tr23;
+		case 38: goto st17;
 		case 39: goto st3;
-		case 40: goto tr24;
-		case 41: goto tr25;
-		case 42: goto tr26;
-		case 43: goto tr27;
-		case 44: goto tr28;
-		case 45: goto tr29;
-		case 46: goto st17;
-		case 47: goto tr31;
-		case 58: goto tr33;
-		case 60: goto st22;
+		case 40: goto tr26;
+		case 41: goto tr27;
+		case 42: goto tr28;
+		case 43: goto tr29;
+		case 44: goto tr30;
+		case 45: goto tr31;
+		case 46: goto st18;
+		case 47: goto tr33;
+		case 58: goto tr35;
+		case 60: goto st23;
 		case 61: goto st7;
-		case 62: goto st23;
-		case 63: goto tr37;
-		case 90: goto st26;
-		case 94: goto tr40;
-		case 95: goto st24;
-		case 97: goto st29;
-		case 98: goto st43;
-		case 99: goto st46;
-		case 100: goto st51;
-		case 101: goto st61;
-		case 102: goto st63;
-		case 108: goto st67;
-		case 109: goto st71;
-		case 110: goto st77;
-		case 112: goto st80;
-		case 114: goto st83;
-		case 115: goto st91;
-		case 116: goto st119;
-		case 118: goto st131;
-		case 119: goto st137;
-		case 124: goto st12;
+		case 62: goto st24;
+		case 63: goto tr39;
+		case 90: goto st27;
+		case 94: goto tr41;
+		case 95: goto st25;
+		case 97: goto st30;
+		case 98: goto st44;
+		case 99: goto st47;
+		case 100: goto st52;
+		case 101: goto st62;
+		case 102: goto st64;
+		case 108: goto st69;
+		case 109: goto st73;
+		case 110: goto st79;
+		case 112: goto st82;
+		case 114: goto st85;
+		case 115: goto st93;
+		case 116: goto st121;
+		case 118: goto st133;
+		case 119: goto st139;
+		case 124: goto st13;
 	}
 	if ( (*p) < 48 ) {
 		if ( 9 <= (*p) && (*p) <= 13 )
-			goto st14;
+			goto st15;
 	} else if ( (*p) > 57 ) {
 		if ( (*p) > 89 ) {
 			if ( 103 <= (*p) && (*p) <= 122 )
-				goto st24;
+				goto st25;
 		} else if ( (*p) >= 65 )
-			goto st24;
+			goto st25;
 	} else
-		goto tr32;
+		goto tr34;
 	goto st0;
 st0:
 cs = 0;
 	goto _out;
-st14:
-	if ( ++p == pe )
-		goto _test_eof14;
-case 14:
-	if ( (*p) == 32 )
-		goto st14;
-	if ( 9 <= (*p) && (*p) <= 13 )
-		goto st14;
-	goto tr57;
 st15:
 	if ( ++p == pe )
 		goto _test_eof15;
 case 15:
-	if ( (*p) == 61 )
-		goto tr59;
+	if ( (*p) == 32 )
+		goto st15;
+	if ( 9 <= (*p) && (*p) <= 13 )
+		goto st15;
 	goto tr58;
+st16:
+	if ( ++p == pe )
+		goto _test_eof16;
+case 16:
+	if ( (*p) == 61 )
+		goto tr60;
+	goto tr59;
 st1:
 	if ( ++p == pe )
 		goto _test_eof1;
@@ -1057,13 +1082,13 @@ case 2:
 	if ( (*p) == 34 )
 		goto tr2;
 	goto st2;
-st16:
+st17:
 	if ( ++p == pe )
-		goto _test_eof16;
-case 16:
+		goto _test_eof17;
+case 17:
 	if ( (*p) == 38 )
-		goto tr61;
-	goto tr60;
+		goto tr62;
+	goto tr61;
 st3:
 	if ( ++p == pe )
 		goto _test_eof3;
@@ -1078,35 +1103,35 @@ case 4:
 	if ( (*p) == 39 )
 		goto tr4;
 	goto st4;
-st17:
+st18:
 	if ( ++p == pe )
-		goto _test_eof17;
-case 17:
+		goto _test_eof18;
+case 18:
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr63;
+			goto tr64;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto st20;
+			goto st21;
 	} else
-		goto st20;
-	goto tr62;
-tr63:
+		goto st21;
+	goto tr63;
+tr64:
 #line 1 "NONE"
 	{te = p+1;}
-	goto st18;
-st18:
+	goto st19;
+st19:
 	if ( ++p == pe )
-		goto _test_eof18;
-case 18:
-#line 1103 "volumeExprScanner.cc"
+		goto _test_eof19;
+case 19:
+#line 1128 "volumeExprScanner.cc"
 	switch( (*p) ) {
 		case 69: goto st5;
 		case 101: goto st5;
 	}
 	if ( 48 <= (*p) && (*p) <= 57 )
-		goto tr63;
-	goto tr65;
+		goto tr64;
+	goto tr66;
 st5:
 	if ( ++p == pe )
 		goto _test_eof5;
@@ -1116,56 +1141,56 @@ case 5:
 		case 45: goto st6;
 	}
 	if ( 48 <= (*p) && (*p) <= 57 )
-		goto st19;
+		goto st20;
 	goto tr5;
 st6:
 	if ( ++p == pe )
 		goto _test_eof6;
 case 6:
 	if ( 48 <= (*p) && (*p) <= 57 )
-		goto st19;
+		goto st20;
 	goto tr5;
-st19:
-	if ( ++p == pe )
-		goto _test_eof19;
-case 19:
-	if ( 48 <= (*p) && (*p) <= 57 )
-		goto st19;
-	goto tr65;
 st20:
 	if ( ++p == pe )
 		goto _test_eof20;
 case 20:
+	if ( 48 <= (*p) && (*p) <= 57 )
+		goto st20;
+	goto tr66;
+st21:
+	if ( ++p == pe )
+		goto _test_eof21;
+case 21:
 	if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto st20;
+			goto st21;
 	} else if ( (*p) >= 65 )
-		goto st20;
-	goto tr67;
-tr32:
+		goto st21;
+	goto tr68;
+tr34:
 #line 1 "NONE"
 	{te = p+1;}
-	goto st21;
-st21:
+	goto st22;
+st22:
 	if ( ++p == pe )
-		goto _test_eof21;
-case 21:
-#line 1154 "volumeExprScanner.cc"
+		goto _test_eof22;
+case 22:
+#line 1179 "volumeExprScanner.cc"
 	switch( (*p) ) {
-		case 46: goto tr63;
+		case 46: goto tr64;
 		case 69: goto st5;
 		case 101: goto st5;
 	}
 	if ( 48 <= (*p) && (*p) <= 57 )
-		goto tr32;
-	goto tr65;
-st22:
+		goto tr34;
+	goto tr66;
+st23:
 	if ( ++p == pe )
-		goto _test_eof22;
-case 22:
+		goto _test_eof23;
+case 23:
 	if ( (*p) == 61 )
-		goto tr69;
-	goto tr68;
+		goto tr70;
+	goto tr69;
 st7:
 	if ( ++p == pe )
 		goto _test_eof7;
@@ -1173,2595 +1198,2630 @@ case 7:
 	if ( (*p) == 61 )
 		goto tr8;
 	goto st0;
-st23:
-	if ( ++p == pe )
-		goto _test_eof23;
-case 23:
-	if ( (*p) == 61 )
-		goto tr71;
-	goto tr70;
 st24:
 	if ( ++p == pe )
 		goto _test_eof24;
 case 24:
+	if ( (*p) == 61 )
+		goto tr72;
+	goto tr71;
+st25:
+	if ( ++p == pe )
+		goto _test_eof25;
+case 25:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
+		case 46: goto tr74;
+		case 95: goto tr74;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
-tr73:
+		goto tr74;
+	goto tr73;
+tr74:
 #line 1 "NONE"
 	{te = p+1;}
 #line 358 "volumeExprScanner.rl"
 	{act = 75;}
-	goto st25;
-tr77:
+	goto st26;
+tr78:
 #line 1 "NONE"
 	{te = p+1;}
-#line 463 "volumeExprScanner.rl"
+#line 467 "volumeExprScanner.rl"
 	{act = 67;}
-	goto st25;
-tr84:
+	goto st26;
+tr85:
 #line 1 "NONE"
 	{te = p+1;}
-#line 429 "volumeExprScanner.rl"
+#line 433 "volumeExprScanner.rl"
 	{act = 40;}
-	goto st25;
-tr85:
+	goto st26;
+tr86:
 #line 1 "NONE"
 	{te = p+1;}
-#line 468 "volumeExprScanner.rl"
+#line 472 "volumeExprScanner.rl"
 	{act = 72;}
-	goto st25;
-tr87:
+	goto st26;
+tr88:
 #line 1 "NONE"
 	{te = p+1;}
-#line 428 "volumeExprScanner.rl"
+#line 432 "volumeExprScanner.rl"
 	{act = 39;}
-	goto st25;
-tr91:
+	goto st26;
+tr92:
 #line 1 "NONE"
 	{te = p+1;}
-#line 431 "volumeExprScanner.rl"
+#line 435 "volumeExprScanner.rl"
 	{act = 42;}
-	goto st25;
-tr96:
+	goto st26;
+tr97:
 #line 1 "NONE"
 	{te = p+1;}
-#line 447 "volumeExprScanner.rl"
+#line 451 "volumeExprScanner.rl"
 	{act = 55;}
-	goto st25;
-tr99:
+	goto st26;
+tr100:
 #line 1 "NONE"
 	{te = p+1;}
-#line 454 "volumeExprScanner.rl"
+#line 458 "volumeExprScanner.rl"
 	{act = 60;}
-	goto st25;
-tr103:
+	goto st26;
+tr104:
 #line 1 "NONE"
 	{te = p+1;}
-#line 424 "volumeExprScanner.rl"
+#line 428 "volumeExprScanner.rl"
 	{act = 35;}
-	goto st25;
-tr106:
+	goto st26;
+tr107:
 #line 1 "NONE"
 	{te = p+1;}
-#line 433 "volumeExprScanner.rl"
+#line 437 "volumeExprScanner.rl"
 	{act = 44;}
-	goto st25;
-tr114:
+	goto st26;
+tr115:
 #line 1 "NONE"
 	{te = p+1;}
-#line 416 "volumeExprScanner.rl"
+#line 420 "volumeExprScanner.rl"
 	{act = 27;}
-	goto st25;
-tr117:
+	goto st26;
+tr118:
 #line 1 "NONE"
 	{te = p+1;}
-#line 470 "volumeExprScanner.rl"
+#line 474 "volumeExprScanner.rl"
 	{act = 74;}
-	goto st25;
-tr119:
+	goto st26;
+tr120:
 #line 1 "NONE"
 	{te = p+1;}
-#line 418 "volumeExprScanner.rl"
+#line 422 "volumeExprScanner.rl"
 	{act = 29;}
-	goto st25;
-tr123:
+	goto st26;
+tr125:
 #line 1 "NONE"
 	{te = p+1;}
-#line 462 "volumeExprScanner.rl"
+#line 466 "volumeExprScanner.rl"
 	{act = 66;}
-	goto st25;
-tr128:
+	goto st26;
+tr131:
 #line 1 "NONE"
 	{te = p+1;}
-#line 420 "volumeExprScanner.rl"
+#line 424 "volumeExprScanner.rl"
 	{act = 31;}
-	goto st25;
-tr132:
+	goto st26;
+tr135:
 #line 1 "NONE"
 	{te = p+1;}
-#line 446 "volumeExprScanner.rl"
+#line 450 "volumeExprScanner.rl"
 	{act = 54;}
-	goto st25;
-tr136:
+	goto st26;
+tr139:
 #line 1 "NONE"
 	{te = p+1;}
-#line 436 "volumeExprScanner.rl"
+#line 440 "volumeExprScanner.rl"
 	{act = 47;}
-	goto st25;
-tr137:
+	goto st26;
+tr140:
 #line 1 "NONE"
 	{te = p+1;}
-#line 445 "volumeExprScanner.rl"
+#line 449 "volumeExprScanner.rl"
 	{act = 53;}
-	goto st25;
-tr141:
+	goto st26;
+tr144:
 #line 1 "NONE"
 	{te = p+1;}
-#line 441 "volumeExprScanner.rl"
+#line 445 "volumeExprScanner.rl"
 	{act = 51;}
-	goto st25;
-tr142:
+	goto st26;
+tr145:
 #line 1 "NONE"
 	{te = p+1;}
-#line 415 "volumeExprScanner.rl"
+#line 419 "volumeExprScanner.rl"
 	{act = 26;}
-	goto st25;
-tr145:
+	goto st26;
+tr148:
 #line 1 "NONE"
 	{te = p+1;}
-#line 421 "volumeExprScanner.rl"
+#line 425 "volumeExprScanner.rl"
 	{act = 32;}
-	goto st25;
-tr147:
+	goto st26;
+tr150:
 #line 1 "NONE"
 	{te = p+1;}
-#line 440 "volumeExprScanner.rl"
+#line 444 "volumeExprScanner.rl"
 	{act = 50;}
-	goto st25;
-tr155:
+	goto st26;
+tr158:
 #line 1 "NONE"
 	{te = p+1;}
-#line 417 "volumeExprScanner.rl"
+#line 421 "volumeExprScanner.rl"
 	{act = 28;}
-	goto st25;
-tr156:
+	goto st26;
+tr159:
 #line 1 "NONE"
 	{te = p+1;}
-#line 451 "volumeExprScanner.rl"
+#line 455 "volumeExprScanner.rl"
 	{act = 59;}
-	goto st25;
-tr164:
+	goto st26;
+tr167:
 #line 1 "NONE"
 	{te = p+1;}
-#line 442 "volumeExprScanner.rl"
+#line 446 "volumeExprScanner.rl"
 	{act = 52;}
-	goto st25;
-tr166:
+	goto st26;
+tr169:
 #line 1 "NONE"
 	{te = p+1;}
-#line 432 "volumeExprScanner.rl"
+#line 436 "volumeExprScanner.rl"
 	{act = 43;}
-	goto st25;
-tr179:
+	goto st26;
+tr182:
 #line 1 "NONE"
 	{te = p+1;}
-#line 458 "volumeExprScanner.rl"
+#line 462 "volumeExprScanner.rl"
 	{act = 64;}
-	goto st25;
-tr182:
+	goto st26;
+tr185:
 #line 1 "NONE"
 	{te = p+1;}
-#line 423 "volumeExprScanner.rl"
+#line 427 "volumeExprScanner.rl"
 	{act = 34;}
-	goto st25;
-tr183:
+	goto st26;
+tr186:
 #line 1 "NONE"
 	{te = p+1;}
-#line 448 "volumeExprScanner.rl"
+#line 452 "volumeExprScanner.rl"
 	{act = 56;}
-	goto st25;
-tr191:
+	goto st26;
+tr194:
 #line 1 "NONE"
 	{te = p+1;}
-#line 457 "volumeExprScanner.rl"
+#line 461 "volumeExprScanner.rl"
 	{act = 63;}
-	goto st25;
-tr198:
+	goto st26;
+tr201:
 #line 1 "NONE"
 	{te = p+1;}
-#line 434 "volumeExprScanner.rl"
+#line 438 "volumeExprScanner.rl"
 	{act = 45;}
-	goto st25;
-tr206:
+	goto st26;
+tr209:
 #line 1 "NONE"
 	{te = p+1;}
-#line 469 "volumeExprScanner.rl"
+#line 473 "volumeExprScanner.rl"
 	{act = 73;}
-	goto st25;
-tr208:
+	goto st26;
+tr211:
 #line 1 "NONE"
 	{te = p+1;}
-#line 461 "volumeExprScanner.rl"
+#line 465 "volumeExprScanner.rl"
 	{act = 65;}
-	goto st25;
-tr228:
+	goto st26;
+tr231:
 #line 1 "NONE"
 	{te = p+1;}
-#line 449 "volumeExprScanner.rl"
+#line 453 "volumeExprScanner.rl"
 	{act = 57;}
-	goto st25;
-tr230:
+	goto st26;
+tr233:
 #line 1 "NONE"
 	{te = p+1;}
-#line 450 "volumeExprScanner.rl"
+#line 454 "volumeExprScanner.rl"
 	{act = 58;}
-	goto st25;
-st25:
-	if ( ++p == pe )
-		goto _test_eof25;
-case 25:
-#line 1415 "volumeExprScanner.cc"
-	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-	}
-	if ( (*p) < 65 ) {
-		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
-	} else if ( (*p) > 90 ) {
-		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
-	} else
-		goto tr73;
-	goto tr74;
+	goto st26;
 st26:
 	if ( ++p == pe )
 		goto _test_eof26;
 case 26:
+#line 1440 "volumeExprScanner.cc"
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 101: goto st27;
+		case 46: goto tr74;
+		case 95: goto tr74;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr75;
 st27:
 	if ( ++p == pe )
 		goto _test_eof27;
 case 27:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 114: goto st28;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 101: goto st28;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st28:
 	if ( ++p == pe )
 		goto _test_eof28;
 case 28:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 111: goto tr77;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 114: goto st29;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st29:
 	if ( ++p == pe )
 		goto _test_eof29;
 case 29:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 99: goto st30;
-		case 114: goto st32;
-		case 115: goto st33;
-		case 116: goto st35;
-		case 118: goto st38;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 111: goto tr78;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st30:
 	if ( ++p == pe )
 		goto _test_eof30;
 case 30:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 111: goto st31;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 99: goto st31;
+		case 114: goto st33;
+		case 115: goto st34;
+		case 116: goto st36;
+		case 118: goto st39;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st31:
 	if ( ++p == pe )
 		goto _test_eof31;
 case 31:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 115: goto tr84;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 111: goto st32;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st32:
 	if ( ++p == pe )
 		goto _test_eof32;
 case 32:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 103: goto tr85;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 115: goto tr85;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st33:
 	if ( ++p == pe )
 		goto _test_eof33;
 case 33:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 105: goto st34;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 103: goto tr86;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st34:
 	if ( ++p == pe )
 		goto _test_eof34;
 case 34:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 110: goto tr87;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 105: goto st35;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st35:
 	if ( ++p == pe )
 		goto _test_eof35;
 case 35:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 97: goto st36;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 110: goto tr88;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
-		if ( 98 <= (*p) && (*p) <= 122 )
-			goto tr73;
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st36:
 	if ( ++p == pe )
 		goto _test_eof36;
 case 36:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 110: goto st37;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 97: goto st37;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
-		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+		if ( 98 <= (*p) && (*p) <= 122 )
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st37:
 	if ( ++p == pe )
 		goto _test_eof37;
 case 37:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 50: goto tr91;
-		case 95: goto tr73;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 110: goto st38;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr90;
+		goto tr74;
+	goto tr73;
 st38:
 	if ( ++p == pe )
 		goto _test_eof38;
 case 38:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 101: goto st39;
+		case 46: goto tr74;
+		case 50: goto tr92;
+		case 95: goto tr74;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr91;
 st39:
 	if ( ++p == pe )
 		goto _test_eof39;
 case 39:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 114: goto st40;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 101: goto st40;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st40:
 	if ( ++p == pe )
 		goto _test_eof40;
 case 40:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 97: goto st41;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 114: goto st41;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
-		if ( 98 <= (*p) && (*p) <= 122 )
-			goto tr73;
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st41:
 	if ( ++p == pe )
 		goto _test_eof41;
 case 41:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 103: goto st42;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 97: goto st42;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
-		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+		if ( 98 <= (*p) && (*p) <= 122 )
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st42:
 	if ( ++p == pe )
 		goto _test_eof42;
 case 42:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 101: goto tr96;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 103: goto st43;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st43:
 	if ( ++p == pe )
 		goto _test_eof43;
 case 43:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 111: goto st44;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 101: goto tr97;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st44:
 	if ( ++p == pe )
 		goto _test_eof44;
 case 44:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
+		case 46: goto tr74;
+		case 95: goto tr74;
 		case 111: goto st45;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st45:
 	if ( ++p == pe )
 		goto _test_eof45;
 case 45:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 108: goto tr99;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 111: goto st46;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st46:
 	if ( ++p == pe )
 		goto _test_eof46;
 case 46:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 98: goto st47;
-		case 111: goto st49;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 108: goto tr100;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st47:
 	if ( ++p == pe )
 		goto _test_eof47;
 case 47:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 114: goto st48;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 98: goto st48;
+		case 111: goto st50;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st48:
 	if ( ++p == pe )
 		goto _test_eof48;
 case 48:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 116: goto tr103;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 114: goto st49;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st49:
 	if ( ++p == pe )
 		goto _test_eof49;
 case 49:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 115: goto st50;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 116: goto tr104;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st50:
 	if ( ++p == pe )
 		goto _test_eof50;
 case 50:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 104: goto tr106;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 115: goto st51;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr105;
+		goto tr74;
+	goto tr73;
 st51:
 	if ( ++p == pe )
 		goto _test_eof51;
 case 51:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 101: goto st52;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 104: goto tr107;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr106;
 st52:
 	if ( ++p == pe )
 		goto _test_eof52;
 case 52:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 103: goto st53;
-		case 108: goto st58;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 101: goto st53;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st53:
 	if ( ++p == pe )
 		goto _test_eof53;
 case 53:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 84: goto st54;
-		case 95: goto tr73;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 103: goto st54;
+		case 108: goto st59;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st54:
 	if ( ++p == pe )
 		goto _test_eof54;
 case 54:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 111: goto st55;
+		case 46: goto tr74;
+		case 84: goto st55;
+		case 95: goto tr74;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st55:
 	if ( ++p == pe )
 		goto _test_eof55;
 case 55:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 82: goto st56;
-		case 95: goto tr73;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 111: goto st56;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st56:
 	if ( ++p == pe )
 		goto _test_eof56;
 case 56:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 97: goto st57;
+		case 46: goto tr74;
+		case 82: goto st57;
+		case 95: goto tr74;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
-		if ( 98 <= (*p) && (*p) <= 122 )
-			goto tr73;
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st57:
 	if ( ++p == pe )
 		goto _test_eof57;
 case 57:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 100: goto tr114;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 97: goto st58;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
-		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+		if ( 98 <= (*p) && (*p) <= 122 )
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st58:
 	if ( ++p == pe )
 		goto _test_eof58;
 case 58:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 116: goto st59;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 100: goto tr115;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st59:
 	if ( ++p == pe )
 		goto _test_eof59;
 case 59:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 97: goto st60;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 116: goto st60;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
-		if ( 98 <= (*p) && (*p) <= 122 )
-			goto tr73;
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st60:
 	if ( ++p == pe )
 		goto _test_eof60;
 case 60:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 84: goto tr117;
-		case 95: goto tr73;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 97: goto st61;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
-		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+		if ( 98 <= (*p) && (*p) <= 122 )
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st61:
 	if ( ++p == pe )
 		goto _test_eof61;
 case 61:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 120: goto st62;
+		case 46: goto tr74;
+		case 84: goto tr118;
+		case 95: goto tr74;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st62:
 	if ( ++p == pe )
 		goto _test_eof62;
 case 62:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 112: goto tr119;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 120: goto st63;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st63:
 	if ( ++p == pe )
 		goto _test_eof63;
 case 63:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 97: goto st64;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 112: goto tr120;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
-		if ( 98 <= (*p) && (*p) <= 122 )
-			goto tr73;
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st64:
 	if ( ++p == pe )
 		goto _test_eof64;
 case 64:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 108: goto st65;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 97: goto st65;
+		case 110: goto tr122;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
-		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+		if ( 98 <= (*p) && (*p) <= 122 )
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st65:
 	if ( ++p == pe )
 		goto _test_eof65;
 case 65:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 115: goto st66;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 108: goto st66;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st66:
 	if ( ++p == pe )
 		goto _test_eof66;
 case 66:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 101: goto tr123;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 115: goto st67;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st67:
 	if ( ++p == pe )
 		goto _test_eof67;
 case 67:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 111: goto st68;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 101: goto tr125;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
+tr122:
+#line 1 "NONE"
+	{te = p+1;}
+	goto st68;
 st68:
 	if ( ++p == pe )
 		goto _test_eof68;
 case 68:
+#line 2207 "volumeExprScanner.cc"
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 103: goto st69;
+		case 46: goto tr74;
+		case 58: goto st8;
+		case 95: goto tr74;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
+st8:
+	if ( ++p == pe )
+		goto _test_eof8;
+case 8:
+	if ( (*p) == 95 )
+		goto st25;
+	if ( (*p) > 90 ) {
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto st25;
+	} else if ( (*p) >= 65 )
+		goto st25;
+	goto tr9;
 st69:
 	if ( ++p == pe )
 		goto _test_eof69;
 case 69:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 49: goto st70;
-		case 95: goto tr73;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 111: goto st70;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr126;
+		goto tr74;
+	goto tr73;
 st70:
 	if ( ++p == pe )
 		goto _test_eof70;
 case 70:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 48: goto tr128;
-		case 95: goto tr73;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 103: goto st71;
 	}
 	if ( (*p) < 65 ) {
-		if ( 49 <= (*p) && (*p) <= 57 )
-			goto tr73;
+		if ( 48 <= (*p) && (*p) <= 57 )
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st71:
 	if ( ++p == pe )
 		goto _test_eof71;
 case 71:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 97: goto st72;
-		case 105: goto st76;
+		case 46: goto tr74;
+		case 49: goto st72;
+		case 95: goto tr74;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
-		if ( 98 <= (*p) && (*p) <= 122 )
-			goto tr73;
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr129;
 st72:
 	if ( ++p == pe )
 		goto _test_eof72;
 case 72:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 103: goto st73;
-		case 120: goto tr132;
+		case 46: goto tr74;
+		case 48: goto tr131;
+		case 95: goto tr74;
 	}
 	if ( (*p) < 65 ) {
-		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+		if ( 49 <= (*p) && (*p) <= 57 )
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st73:
 	if ( ++p == pe )
 		goto _test_eof73;
 case 73:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 83: goto st74;
-		case 95: goto tr73;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 97: goto st74;
+		case 105: goto st78;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
-		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+		if ( 98 <= (*p) && (*p) <= 122 )
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr133;
+		goto tr74;
+	goto tr73;
 st74:
 	if ( ++p == pe )
 		goto _test_eof74;
 case 74:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 113: goto st75;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 103: goto st75;
+		case 120: goto tr135;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st75:
 	if ( ++p == pe )
 		goto _test_eof75;
 case 75:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 114: goto tr136;
+		case 46: goto tr74;
+		case 83: goto st76;
+		case 95: goto tr74;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr136;
 st76:
 	if ( ++p == pe )
 		goto _test_eof76;
 case 76:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 110: goto tr137;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 113: goto st77;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st77:
 	if ( ++p == pe )
 		goto _test_eof77;
 case 77:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 101: goto st78;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 114: goto tr139;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st78:
 	if ( ++p == pe )
 		goto _test_eof78;
 case 78:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 103: goto st79;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 110: goto tr140;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st79:
 	if ( ++p == pe )
 		goto _test_eof79;
 case 79:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 48: goto tr141;
-		case 95: goto tr73;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 101: goto st80;
 	}
 	if ( (*p) < 65 ) {
-		if ( 49 <= (*p) && (*p) <= 57 )
-			goto tr73;
+		if ( 48 <= (*p) && (*p) <= 57 )
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr140;
+		goto tr74;
+	goto tr73;
 st80:
 	if ( ++p == pe )
 		goto _test_eof80;
 case 80:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 105: goto tr142;
-		case 111: goto st81;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 103: goto st81;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st81:
 	if ( ++p == pe )
 		goto _test_eof81;
 case 81:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 115: goto st82;
-		case 119: goto tr145;
+		case 46: goto tr74;
+		case 48: goto tr144;
+		case 95: goto tr74;
 	}
 	if ( (*p) < 65 ) {
-		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+		if ( 49 <= (*p) && (*p) <= 57 )
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr143;
 st82:
 	if ( ++p == pe )
 		goto _test_eof82;
 case 82:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 48: goto tr147;
-		case 95: goto tr73;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 105: goto tr145;
+		case 111: goto st83;
 	}
 	if ( (*p) < 65 ) {
-		if ( 49 <= (*p) && (*p) <= 57 )
-			goto tr73;
+		if ( 48 <= (*p) && (*p) <= 57 )
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr146;
+		goto tr74;
+	goto tr73;
 st83:
 	if ( ++p == pe )
 		goto _test_eof83;
 case 83:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 97: goto st84;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 115: goto st84;
+		case 119: goto tr148;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
-		if ( 98 <= (*p) && (*p) <= 122 )
-			goto tr73;
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st84:
 	if ( ++p == pe )
 		goto _test_eof84;
 case 84:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 100: goto st85;
-		case 110: goto st90;
+		case 46: goto tr74;
+		case 48: goto tr150;
+		case 95: goto tr74;
 	}
 	if ( (*p) < 65 ) {
-		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+		if ( 49 <= (*p) && (*p) <= 57 )
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr149;
 st85:
 	if ( ++p == pe )
 		goto _test_eof85;
 case 85:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 84: goto st86;
-		case 95: goto tr73;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 97: goto st86;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
-		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+		if ( 98 <= (*p) && (*p) <= 122 )
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st86:
 	if ( ++p == pe )
 		goto _test_eof86;
 case 86:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 111: goto st87;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 100: goto st87;
+		case 110: goto st92;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st87:
 	if ( ++p == pe )
 		goto _test_eof87;
 case 87:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 68: goto st88;
-		case 95: goto tr73;
+		case 46: goto tr74;
+		case 84: goto st88;
+		case 95: goto tr74;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st88:
 	if ( ++p == pe )
 		goto _test_eof88;
 case 88:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 101: goto st89;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 111: goto st89;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st89:
 	if ( ++p == pe )
 		goto _test_eof89;
 case 89:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 103: goto tr155;
+		case 46: goto tr74;
+		case 68: goto st90;
+		case 95: goto tr74;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st90:
 	if ( ++p == pe )
 		goto _test_eof90;
 case 90:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 100: goto tr156;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 101: goto st91;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st91:
 	if ( ++p == pe )
 		goto _test_eof91;
 case 91:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 105: goto st92;
-		case 112: goto st95;
-		case 113: goto st108;
-		case 117: goto st110;
-		case 121: goto st111;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 103: goto tr158;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st92:
 	if ( ++p == pe )
 		goto _test_eof92;
 case 92:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 103: goto st93;
-		case 110: goto st94;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 100: goto tr159;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st93:
 	if ( ++p == pe )
 		goto _test_eof93;
 case 93:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 110: goto tr164;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 105: goto st94;
+		case 112: goto st97;
+		case 113: goto st110;
+		case 117: goto st112;
+		case 121: goto st113;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st94:
 	if ( ++p == pe )
 		goto _test_eof94;
 case 94:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 104: goto tr166;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 103: goto st95;
+		case 110: goto st96;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr165;
+		goto tr74;
+	goto tr73;
 st95:
 	if ( ++p == pe )
 		goto _test_eof95;
 case 95:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 104: goto st96;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 110: goto tr167;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st96:
 	if ( ++p == pe )
 		goto _test_eof96;
 case 96:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 101: goto st97;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 104: goto tr169;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr168;
 st97:
 	if ( ++p == pe )
 		goto _test_eof97;
 case 97:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 114: goto st98;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 104: goto st98;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st98:
 	if ( ++p == pe )
 		goto _test_eof98;
 case 98:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 105: goto st99;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 101: goto st99;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st99:
 	if ( ++p == pe )
 		goto _test_eof99;
 case 99:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 99: goto st100;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 114: goto st100;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st100:
 	if ( ++p == pe )
 		goto _test_eof100;
 case 100:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 97: goto st101;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 105: goto st101;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
-		if ( 98 <= (*p) && (*p) <= 122 )
-			goto tr73;
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st101:
 	if ( ++p == pe )
 		goto _test_eof101;
 case 101:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 108: goto st102;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 99: goto st102;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st102:
 	if ( ++p == pe )
 		goto _test_eof102;
 case 102:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 84: goto st103;
-		case 95: goto tr73;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 97: goto st103;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
-		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+		if ( 98 <= (*p) && (*p) <= 122 )
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st103:
 	if ( ++p == pe )
 		goto _test_eof103;
 case 103:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 101: goto st104;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 108: goto st104;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st104:
 	if ( ++p == pe )
 		goto _test_eof104;
 case 104:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 110: goto st105;
+		case 46: goto tr74;
+		case 84: goto st105;
+		case 95: goto tr74;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st105:
 	if ( ++p == pe )
 		goto _test_eof105;
 case 105:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 115: goto st106;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 101: goto st106;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st106:
 	if ( ++p == pe )
 		goto _test_eof106;
 case 106:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 111: goto st107;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 110: goto st107;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st107:
 	if ( ++p == pe )
 		goto _test_eof107;
 case 107:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 114: goto tr179;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 115: goto st108;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st108:
 	if ( ++p == pe )
 		goto _test_eof108;
 case 108:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 114: goto st109;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 111: goto st109;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st109:
 	if ( ++p == pe )
 		goto _test_eof109;
 case 109:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 116: goto tr182;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 114: goto tr182;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr181;
+		goto tr74;
+	goto tr73;
 st110:
 	if ( ++p == pe )
 		goto _test_eof110;
 case 110:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 109: goto tr183;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 114: goto st111;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st111:
 	if ( ++p == pe )
 		goto _test_eof111;
 case 111:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 109: goto st112;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 116: goto tr185;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr184;
 st112:
 	if ( ++p == pe )
 		goto _test_eof112;
 case 112:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 109: goto st113;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 109: goto tr186;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st113:
 	if ( ++p == pe )
 		goto _test_eof113;
 case 113:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 84: goto st114;
-		case 95: goto tr73;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 109: goto st114;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st114:
 	if ( ++p == pe )
 		goto _test_eof114;
 case 114:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 101: goto st115;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 109: goto st115;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st115:
 	if ( ++p == pe )
 		goto _test_eof115;
 case 115:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 110: goto st116;
+		case 46: goto tr74;
+		case 84: goto st116;
+		case 95: goto tr74;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st116:
 	if ( ++p == pe )
 		goto _test_eof116;
 case 116:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 115: goto st117;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 101: goto st117;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st117:
 	if ( ++p == pe )
 		goto _test_eof117;
 case 117:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 111: goto st118;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 110: goto st118;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st118:
 	if ( ++p == pe )
 		goto _test_eof118;
 case 118:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 114: goto tr191;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 115: goto st119;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st119:
 	if ( ++p == pe )
 		goto _test_eof119;
 case 119:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 97: goto st120;
-		case 101: goto st122;
-		case 105: goto st127;
-		case 114: goto st129;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 111: goto st120;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
-		if ( 98 <= (*p) && (*p) <= 122 )
-			goto tr73;
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st120:
 	if ( ++p == pe )
 		goto _test_eof120;
 case 120:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 110: goto st121;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 114: goto tr194;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st121:
 	if ( ++p == pe )
 		goto _test_eof121;
 case 121:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 104: goto tr198;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 97: goto st122;
+		case 101: goto st124;
+		case 105: goto st129;
+		case 114: goto st131;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
-		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+		if ( 98 <= (*p) && (*p) <= 122 )
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr197;
+		goto tr74;
+	goto tr73;
 st122:
 	if ( ++p == pe )
 		goto _test_eof122;
 case 122:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
+		case 46: goto tr74;
+		case 95: goto tr74;
 		case 110: goto st123;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st123:
 	if ( ++p == pe )
 		goto _test_eof123;
 case 123:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 115: goto st124;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 104: goto tr201;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr200;
 st124:
 	if ( ++p == pe )
 		goto _test_eof124;
 case 124:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 111: goto st125;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 110: goto st125;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st125:
 	if ( ++p == pe )
 		goto _test_eof125;
 case 125:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 114: goto tr202;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 115: goto st126;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
-tr202:
-#line 1 "NONE"
-	{te = p+1;}
-	goto st126;
+		goto tr74;
+	goto tr73;
 st126:
 	if ( ++p == pe )
 		goto _test_eof126;
 case 126:
-#line 3256 "volumeExprScanner.cc"
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 58: goto st8;
-		case 95: goto tr73;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 111: goto st127;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr203;
-st8:
-	if ( ++p == pe )
-		goto _test_eof8;
-case 8:
-	if ( (*p) == 58 )
-		goto st9;
-	goto tr9;
-st9:
-	if ( ++p == pe )
-		goto _test_eof9;
-case 9:
-	if ( (*p) == 73 )
-		goto tr11;
-	goto tr9;
+		goto tr74;
+	goto tr73;
 st127:
 	if ( ++p == pe )
 		goto _test_eof127;
 case 127:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 109: goto st128;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 114: goto tr205;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
+tr205:
+#line 1 "NONE"
+	{te = p+1;}
+	goto st128;
 st128:
 	if ( ++p == pe )
 		goto _test_eof128;
 case 128:
+#line 3317 "volumeExprScanner.cc"
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 101: goto tr206;
+		case 46: goto tr74;
+		case 58: goto st9;
+		case 95: goto tr74;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr206;
+st9:
+	if ( ++p == pe )
+		goto _test_eof9;
+case 9:
+	if ( (*p) == 58 )
+		goto st10;
+	goto tr11;
+st10:
+	if ( ++p == pe )
+		goto _test_eof10;
+case 10:
+	if ( (*p) == 73 )
+		goto tr13;
+	goto tr11;
 st129:
 	if ( ++p == pe )
 		goto _test_eof129;
 case 129:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 117: goto st130;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 109: goto st130;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st130:
 	if ( ++p == pe )
 		goto _test_eof130;
 case 130:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 101: goto tr208;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 101: goto tr209;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st131:
 	if ( ++p == pe )
 		goto _test_eof131;
 case 131:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 101: goto st132;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 117: goto st132;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st132:
 	if ( ++p == pe )
 		goto _test_eof132;
 case 132:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 99: goto st133;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 101: goto tr211;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st133:
 	if ( ++p == pe )
 		goto _test_eof133;
 case 133:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 116: goto st134;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 101: goto st134;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st134:
 	if ( ++p == pe )
 		goto _test_eof134;
 case 134:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 111: goto st135;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 99: goto st135;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st135:
 	if ( ++p == pe )
 		goto _test_eof135;
 case 135:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 114: goto tr213;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 116: goto st136;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
-tr213:
-#line 1 "NONE"
-	{te = p+1;}
-	goto st136;
+		goto tr74;
+	goto tr73;
 st136:
 	if ( ++p == pe )
 		goto _test_eof136;
 case 136:
-#line 3455 "volumeExprScanner.cc"
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 58: goto st10;
-		case 95: goto tr73;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 111: goto st137;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr214;
-st10:
-	if ( ++p == pe )
-		goto _test_eof10;
-case 10:
-	if ( (*p) == 58 )
-		goto st11;
-	goto tr12;
-st11:
-	if ( ++p == pe )
-		goto _test_eof11;
-case 11:
-	switch( (*p) ) {
-		case 120: goto tr14;
-		case 121: goto tr15;
-		case 122: goto tr16;
-	}
-	goto tr12;
+		goto tr74;
+	goto tr73;
 st137:
 	if ( ++p == pe )
 		goto _test_eof137;
 case 137:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 101: goto st138;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 114: goto tr216;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
+tr216:
+#line 1 "NONE"
+	{te = p+1;}
+	goto st138;
 st138:
 	if ( ++p == pe )
 		goto _test_eof138;
 case 138:
+#line 3516 "volumeExprScanner.cc"
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 105: goto st139;
+		case 46: goto tr74;
+		case 58: goto st11;
+		case 95: goto tr74;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr217;
+st11:
+	if ( ++p == pe )
+		goto _test_eof11;
+case 11:
+	if ( (*p) == 58 )
+		goto st12;
+	goto tr14;
+st12:
+	if ( ++p == pe )
+		goto _test_eof12;
+case 12:
+	switch( (*p) ) {
+		case 120: goto tr16;
+		case 121: goto tr17;
+		case 122: goto tr18;
+	}
+	goto tr14;
 st139:
 	if ( ++p == pe )
 		goto _test_eof139;
 case 139:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 103: goto st140;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 101: goto st140;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st140:
 	if ( ++p == pe )
 		goto _test_eof140;
 case 140:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 104: goto st141;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 105: goto st141;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st141:
 	if ( ++p == pe )
 		goto _test_eof141;
 case 141:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 116: goto st142;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 103: goto st142;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st142:
 	if ( ++p == pe )
 		goto _test_eof142;
 case 142:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 65: goto st143;
-		case 83: goto st149;
-		case 95: goto tr73;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 104: goto st143;
 	}
-	if ( (*p) < 66 ) {
+	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st143:
 	if ( ++p == pe )
 		goto _test_eof143;
 case 143:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 118: goto st144;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 116: goto st144;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st144:
 	if ( ++p == pe )
 		goto _test_eof144;
 case 144:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 101: goto st145;
+		case 46: goto tr74;
+		case 65: goto st145;
+		case 83: goto st151;
+		case 95: goto tr74;
 	}
-	if ( (*p) < 65 ) {
+	if ( (*p) < 66 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st145:
 	if ( ++p == pe )
 		goto _test_eof145;
 case 145:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 114: goto st146;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 118: goto st146;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st146:
 	if ( ++p == pe )
 		goto _test_eof146;
 case 146:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 97: goto st147;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 101: goto st147;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
-		if ( 98 <= (*p) && (*p) <= 122 )
-			goto tr73;
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st147:
 	if ( ++p == pe )
 		goto _test_eof147;
 case 147:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 103: goto st148;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 114: goto st148;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st148:
 	if ( ++p == pe )
 		goto _test_eof148;
 case 148:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 101: goto tr228;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 97: goto st149;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
-		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+		if ( 98 <= (*p) && (*p) <= 122 )
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st149:
 	if ( ++p == pe )
 		goto _test_eof149;
 case 149:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 117: goto st150;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 103: goto st150;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
+		goto tr74;
+	goto tr73;
 st150:
 	if ( ++p == pe )
 		goto _test_eof150;
 case 150:
 	switch( (*p) ) {
-		case 46: goto tr73;
-		case 95: goto tr73;
-		case 109: goto tr230;
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 101: goto tr231;
 	}
 	if ( (*p) < 65 ) {
 		if ( 48 <= (*p) && (*p) <= 57 )
-			goto tr73;
+			goto tr74;
 	} else if ( (*p) > 90 ) {
 		if ( 97 <= (*p) && (*p) <= 122 )
-			goto tr73;
+			goto tr74;
 	} else
-		goto tr73;
-	goto tr72;
-st12:
+		goto tr74;
+	goto tr73;
+st151:
 	if ( ++p == pe )
-		goto _test_eof12;
-case 12:
+		goto _test_eof151;
+case 151:
+	switch( (*p) ) {
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 117: goto st152;
+	}
+	if ( (*p) < 65 ) {
+		if ( 48 <= (*p) && (*p) <= 57 )
+			goto tr74;
+	} else if ( (*p) > 90 ) {
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto tr74;
+	} else
+		goto tr74;
+	goto tr73;
+st152:
+	if ( ++p == pe )
+		goto _test_eof152;
+case 152:
+	switch( (*p) ) {
+		case 46: goto tr74;
+		case 95: goto tr74;
+		case 109: goto tr233;
+	}
+	if ( (*p) < 65 ) {
+		if ( 48 <= (*p) && (*p) <= 57 )
+			goto tr74;
+	} else if ( (*p) > 90 ) {
+		if ( 97 <= (*p) && (*p) <= 122 )
+			goto tr74;
+	} else
+		goto tr74;
+	goto tr73;
+st13:
+	if ( ++p == pe )
+		goto _test_eof13;
+case 13:
 	if ( (*p) == 124 )
-		goto tr17;
+		goto tr19;
 	goto st0;
 	}
-	_test_eof13: cs = 13; goto _test_eof; 
 	_test_eof14: cs = 14; goto _test_eof; 
 	_test_eof15: cs = 15; goto _test_eof; 
+	_test_eof16: cs = 16; goto _test_eof; 
 	_test_eof1: cs = 1; goto _test_eof; 
 	_test_eof2: cs = 2; goto _test_eof; 
-	_test_eof16: cs = 16; goto _test_eof; 
+	_test_eof17: cs = 17; goto _test_eof; 
 	_test_eof3: cs = 3; goto _test_eof; 
 	_test_eof4: cs = 4; goto _test_eof; 
-	_test_eof17: cs = 17; goto _test_eof; 
 	_test_eof18: cs = 18; goto _test_eof; 
+	_test_eof19: cs = 19; goto _test_eof; 
 	_test_eof5: cs = 5; goto _test_eof; 
 	_test_eof6: cs = 6; goto _test_eof; 
-	_test_eof19: cs = 19; goto _test_eof; 
 	_test_eof20: cs = 20; goto _test_eof; 
 	_test_eof21: cs = 21; goto _test_eof; 
 	_test_eof22: cs = 22; goto _test_eof; 
-	_test_eof7: cs = 7; goto _test_eof; 
 	_test_eof23: cs = 23; goto _test_eof; 
+	_test_eof7: cs = 7; goto _test_eof; 
 	_test_eof24: cs = 24; goto _test_eof; 
 	_test_eof25: cs = 25; goto _test_eof; 
 	_test_eof26: cs = 26; goto _test_eof; 
@@ -3807,6 +3867,7 @@ case 12:
 	_test_eof66: cs = 66; goto _test_eof; 
 	_test_eof67: cs = 67; goto _test_eof; 
 	_test_eof68: cs = 68; goto _test_eof; 
+	_test_eof8: cs = 8; goto _test_eof; 
 	_test_eof69: cs = 69; goto _test_eof; 
 	_test_eof70: cs = 70; goto _test_eof; 
 	_test_eof71: cs = 71; goto _test_eof; 
@@ -3865,10 +3926,10 @@ case 12:
 	_test_eof124: cs = 124; goto _test_eof; 
 	_test_eof125: cs = 125; goto _test_eof; 
 	_test_eof126: cs = 126; goto _test_eof; 
-	_test_eof8: cs = 8; goto _test_eof; 
-	_test_eof9: cs = 9; goto _test_eof; 
 	_test_eof127: cs = 127; goto _test_eof; 
 	_test_eof128: cs = 128; goto _test_eof; 
+	_test_eof9: cs = 9; goto _test_eof; 
+	_test_eof10: cs = 10; goto _test_eof; 
 	_test_eof129: cs = 129; goto _test_eof; 
 	_test_eof130: cs = 130; goto _test_eof; 
 	_test_eof131: cs = 131; goto _test_eof; 
@@ -3877,10 +3938,10 @@ case 12:
 	_test_eof134: cs = 134; goto _test_eof; 
 	_test_eof135: cs = 135; goto _test_eof; 
 	_test_eof136: cs = 136; goto _test_eof; 
-	_test_eof10: cs = 10; goto _test_eof; 
-	_test_eof11: cs = 11; goto _test_eof; 
 	_test_eof137: cs = 137; goto _test_eof; 
 	_test_eof138: cs = 138; goto _test_eof; 
+	_test_eof11: cs = 11; goto _test_eof; 
+	_test_eof12: cs = 12; goto _test_eof; 
 	_test_eof139: cs = 139; goto _test_eof; 
 	_test_eof140: cs = 140; goto _test_eof; 
 	_test_eof141: cs = 141; goto _test_eof; 
@@ -3893,162 +3954,166 @@ case 12:
 	_test_eof148: cs = 148; goto _test_eof; 
 	_test_eof149: cs = 149; goto _test_eof; 
 	_test_eof150: cs = 150; goto _test_eof; 
-	_test_eof12: cs = 12; goto _test_eof; 
+	_test_eof151: cs = 151; goto _test_eof; 
+	_test_eof152: cs = 152; goto _test_eof; 
+	_test_eof13: cs = 13; goto _test_eof; 
 
 	_test_eof: {}
 	if ( p == eof )
 	{
 	switch ( cs ) {
-	case 14: goto tr57;
 	case 15: goto tr58;
-	case 16: goto tr60;
-	case 17: goto tr62;
-	case 18: goto tr65;
+	case 16: goto tr59;
+	case 17: goto tr61;
+	case 18: goto tr63;
+	case 19: goto tr66;
 	case 5: goto tr5;
 	case 6: goto tr5;
-	case 19: goto tr65;
-	case 20: goto tr67;
-	case 21: goto tr65;
-	case 22: goto tr68;
-	case 23: goto tr70;
-	case 24: goto tr72;
-	case 25: goto tr74;
-	case 26: goto tr72;
-	case 27: goto tr72;
-	case 28: goto tr72;
-	case 29: goto tr72;
-	case 30: goto tr72;
-	case 31: goto tr72;
-	case 32: goto tr72;
-	case 33: goto tr72;
-	case 34: goto tr72;
-	case 35: goto tr72;
-	case 36: goto tr72;
-	case 37: goto tr90;
-	case 38: goto tr72;
-	case 39: goto tr72;
-	case 40: goto tr72;
-	case 41: goto tr72;
-	case 42: goto tr72;
-	case 43: goto tr72;
-	case 44: goto tr72;
-	case 45: goto tr72;
-	case 46: goto tr72;
-	case 47: goto tr72;
-	case 48: goto tr72;
-	case 49: goto tr72;
-	case 50: goto tr105;
-	case 51: goto tr72;
-	case 52: goto tr72;
-	case 53: goto tr72;
-	case 54: goto tr72;
-	case 55: goto tr72;
-	case 56: goto tr72;
-	case 57: goto tr72;
-	case 58: goto tr72;
-	case 59: goto tr72;
-	case 60: goto tr72;
-	case 61: goto tr72;
-	case 62: goto tr72;
-	case 63: goto tr72;
-	case 64: goto tr72;
-	case 65: goto tr72;
-	case 66: goto tr72;
-	case 67: goto tr72;
-	case 68: goto tr72;
-	case 69: goto tr126;
-	case 70: goto tr72;
-	case 71: goto tr72;
-	case 72: goto tr72;
-	case 73: goto tr133;
-	case 74: goto tr72;
-	case 75: goto tr72;
-	case 76: goto tr72;
-	case 77: goto tr72;
-	case 78: goto tr72;
-	case 79: goto tr140;
-	case 80: goto tr72;
-	case 81: goto tr72;
-	case 82: goto tr146;
-	case 83: goto tr72;
-	case 84: goto tr72;
-	case 85: goto tr72;
-	case 86: goto tr72;
-	case 87: goto tr72;
-	case 88: goto tr72;
-	case 89: goto tr72;
-	case 90: goto tr72;
-	case 91: goto tr72;
-	case 92: goto tr72;
-	case 93: goto tr72;
-	case 94: goto tr165;
-	case 95: goto tr72;
-	case 96: goto tr72;
-	case 97: goto tr72;
-	case 98: goto tr72;
-	case 99: goto tr72;
-	case 100: goto tr72;
-	case 101: goto tr72;
-	case 102: goto tr72;
-	case 103: goto tr72;
-	case 104: goto tr72;
-	case 105: goto tr72;
-	case 106: goto tr72;
-	case 107: goto tr72;
-	case 108: goto tr72;
-	case 109: goto tr181;
-	case 110: goto tr72;
-	case 111: goto tr72;
-	case 112: goto tr72;
-	case 113: goto tr72;
-	case 114: goto tr72;
-	case 115: goto tr72;
-	case 116: goto tr72;
-	case 117: goto tr72;
-	case 118: goto tr72;
-	case 119: goto tr72;
-	case 120: goto tr72;
-	case 121: goto tr197;
-	case 122: goto tr72;
-	case 123: goto tr72;
-	case 124: goto tr72;
-	case 125: goto tr72;
-	case 126: goto tr203;
+	case 20: goto tr66;
+	case 21: goto tr68;
+	case 22: goto tr66;
+	case 23: goto tr69;
+	case 24: goto tr71;
+	case 25: goto tr73;
+	case 26: goto tr75;
+	case 27: goto tr73;
+	case 28: goto tr73;
+	case 29: goto tr73;
+	case 30: goto tr73;
+	case 31: goto tr73;
+	case 32: goto tr73;
+	case 33: goto tr73;
+	case 34: goto tr73;
+	case 35: goto tr73;
+	case 36: goto tr73;
+	case 37: goto tr73;
+	case 38: goto tr91;
+	case 39: goto tr73;
+	case 40: goto tr73;
+	case 41: goto tr73;
+	case 42: goto tr73;
+	case 43: goto tr73;
+	case 44: goto tr73;
+	case 45: goto tr73;
+	case 46: goto tr73;
+	case 47: goto tr73;
+	case 48: goto tr73;
+	case 49: goto tr73;
+	case 50: goto tr73;
+	case 51: goto tr106;
+	case 52: goto tr73;
+	case 53: goto tr73;
+	case 54: goto tr73;
+	case 55: goto tr73;
+	case 56: goto tr73;
+	case 57: goto tr73;
+	case 58: goto tr73;
+	case 59: goto tr73;
+	case 60: goto tr73;
+	case 61: goto tr73;
+	case 62: goto tr73;
+	case 63: goto tr73;
+	case 64: goto tr73;
+	case 65: goto tr73;
+	case 66: goto tr73;
+	case 67: goto tr73;
+	case 68: goto tr73;
 	case 8: goto tr9;
-	case 9: goto tr9;
-	case 127: goto tr72;
-	case 128: goto tr72;
-	case 129: goto tr72;
-	case 130: goto tr72;
-	case 131: goto tr72;
-	case 132: goto tr72;
-	case 133: goto tr72;
-	case 134: goto tr72;
-	case 135: goto tr72;
-	case 136: goto tr214;
-	case 10: goto tr12;
-	case 11: goto tr12;
-	case 137: goto tr72;
-	case 138: goto tr72;
-	case 139: goto tr72;
-	case 140: goto tr72;
-	case 141: goto tr72;
-	case 142: goto tr72;
-	case 143: goto tr72;
-	case 144: goto tr72;
-	case 145: goto tr72;
-	case 146: goto tr72;
-	case 147: goto tr72;
-	case 148: goto tr72;
-	case 149: goto tr72;
-	case 150: goto tr72;
+	case 69: goto tr73;
+	case 70: goto tr73;
+	case 71: goto tr129;
+	case 72: goto tr73;
+	case 73: goto tr73;
+	case 74: goto tr73;
+	case 75: goto tr136;
+	case 76: goto tr73;
+	case 77: goto tr73;
+	case 78: goto tr73;
+	case 79: goto tr73;
+	case 80: goto tr73;
+	case 81: goto tr143;
+	case 82: goto tr73;
+	case 83: goto tr73;
+	case 84: goto tr149;
+	case 85: goto tr73;
+	case 86: goto tr73;
+	case 87: goto tr73;
+	case 88: goto tr73;
+	case 89: goto tr73;
+	case 90: goto tr73;
+	case 91: goto tr73;
+	case 92: goto tr73;
+	case 93: goto tr73;
+	case 94: goto tr73;
+	case 95: goto tr73;
+	case 96: goto tr168;
+	case 97: goto tr73;
+	case 98: goto tr73;
+	case 99: goto tr73;
+	case 100: goto tr73;
+	case 101: goto tr73;
+	case 102: goto tr73;
+	case 103: goto tr73;
+	case 104: goto tr73;
+	case 105: goto tr73;
+	case 106: goto tr73;
+	case 107: goto tr73;
+	case 108: goto tr73;
+	case 109: goto tr73;
+	case 110: goto tr73;
+	case 111: goto tr184;
+	case 112: goto tr73;
+	case 113: goto tr73;
+	case 114: goto tr73;
+	case 115: goto tr73;
+	case 116: goto tr73;
+	case 117: goto tr73;
+	case 118: goto tr73;
+	case 119: goto tr73;
+	case 120: goto tr73;
+	case 121: goto tr73;
+	case 122: goto tr73;
+	case 123: goto tr200;
+	case 124: goto tr73;
+	case 125: goto tr73;
+	case 126: goto tr73;
+	case 127: goto tr73;
+	case 128: goto tr206;
+	case 9: goto tr11;
+	case 10: goto tr11;
+	case 129: goto tr73;
+	case 130: goto tr73;
+	case 131: goto tr73;
+	case 132: goto tr73;
+	case 133: goto tr73;
+	case 134: goto tr73;
+	case 135: goto tr73;
+	case 136: goto tr73;
+	case 137: goto tr73;
+	case 138: goto tr217;
+	case 11: goto tr14;
+	case 12: goto tr14;
+	case 139: goto tr73;
+	case 140: goto tr73;
+	case 141: goto tr73;
+	case 142: goto tr73;
+	case 143: goto tr73;
+	case 144: goto tr73;
+	case 145: goto tr73;
+	case 146: goto tr73;
+	case 147: goto tr73;
+	case 148: goto tr73;
+	case 149: goto tr73;
+	case 150: goto tr73;
+	case 151: goto tr73;
+	case 152: goto tr73;
 	}
 	}
 
 	_out: {}
 	}
 
-#line 722 "volumeExprScanner.rl"
+#line 742 "volumeExprScanner.rl"
    /* ^^^ FSM execution here ^^^ */;
 
     if (0 == cs)
diff --git a/src/finiteVolume/expressions/volume/volumeExprScanner.rl b/src/finiteVolume/expressions/volume/volumeExprScanner.rl
index 03b4e93c7b5161bf53f89b02d98333dd4ac1d247..60cf6bb32747285ba76077dc2630df7e715afa2d 100644
--- a/src/finiteVolume/expressions/volume/volumeExprScanner.rl
+++ b/src/finiteVolume/expressions/volume/volumeExprScanner.rl
@@ -371,12 +371,16 @@ static int driverTokenType
 
     decimal = ((digit* '.' digit+) | (digit+ '.'?)) ;
     number  = ((digit+ | decimal) ([Ee][\-+]? digit+)?) ;
-    ident   = ((alpha|'_') . ((alnum|[._])**)) ;
+    identifier = ((alpha|'_') . ((alnum|[._])**)) ;
     dquoted = '"' [^\"]+ '"' ;
     squoted = "'" [^\']+ "'" ;
 
+    ## Allow 'fn:' prefix for function identifier
+    ident = ('fn:')? identifier ;
 
+    ## ===========
     ## The scanner
+    ## ===========
     main := |*
         space*;
 
@@ -585,6 +589,22 @@ bool Foam::expressions::volumeExpr::scanner::dispatch_ident
 
         do
         {
+            #undef  doLocalCode
+            #define doLocalCode(TokType, Type)                      \
+            if (driver_.isFunction<Type>(funcName))                 \
+            {                                                       \
+                ident = std::move(funcName);                        \
+                tokType = TokType;                                  \
+                break;                                              \
+            }
+
+            #ifdef TOK_SCALAR_FUNCTION_ID
+            doLocalCode(TOK_SCALAR_FUNCTION_ID, scalar);
+            #endif
+            #ifdef TOK_VECTOR_FUNCTION_ID
+            doLocalCode(TOK_VECTOR_FUNCTION_ID, vector);
+            #endif
+            #undef doLocalCode
         }
         while (false);
     }