@odata/parser
Version:
OData(V4) Parser
245 lines (244 loc) • 12 kB
TypeScript
import { SourceArray } from './utils';
export declare enum TokenType {
Literal = "Literal",
ArrayOrObject = "ArrayOrObject",
Array = "Array",
Object = "Object",
Property = "Property",
Annotation = "Annotation",
Enum = "Enum",
EnumValue = "EnumValue",
EnumMemberValue = "EnumMemberValue",
Identifier = "Identifier",
QualifiedEntityTypeName = "QualifiedEntityTypeName",
QualifiedComplexTypeName = "QualifiedComplexTypeName",
ODataIdentifier = "ODataIdentifier",
Collection = "Collection",
NamespacePart = "NamespacePart",
EntitySetName = "EntitySetName",
SingletonEntity = "SingletonEntity",
EntityTypeName = "EntityTypeName",
ComplexTypeName = "ComplexTypeName",
TypeDefinitionName = "TypeDefinitionName",
EnumerationTypeName = "EnumerationTypeName",
EnumerationMember = "EnumerationMember",
TermName = "TermName",
PrimitiveProperty = "PrimitiveProperty",
PrimitiveKeyProperty = "PrimitiveKeyProperty",
PrimitiveNonKeyProperty = "PrimitiveNonKeyProperty",
PrimitiveCollectionProperty = "PrimitiveCollectionProperty",
ComplexProperty = "ComplexProperty",
ComplexCollectionProperty = "ComplexCollectionProperty",
StreamProperty = "StreamProperty",
NavigationProperty = "NavigationProperty",
EntityNavigationProperty = "EntityNavigationProperty",
EntityCollectionNavigationProperty = "EntityCollectionNavigationProperty",
Action = "Action",
ActionImport = "ActionImport",
Function = "Function",
EntityFunction = "EntityFunction",
EntityCollectionFunction = "EntityCollectionFunction",
ComplexFunction = "ComplexFunction",
ComplexCollectionFunction = "ComplexCollectionFunction",
PrimitiveFunction = "PrimitiveFunction",
PrimitiveCollectionFunction = "PrimitiveCollectionFunction",
EntityFunctionImport = "EntityFunctionImport",
EntityCollectionFunctionImport = "EntityCollectionFunctionImport",
ComplexFunctionImport = "ComplexFunctionImport",
ComplexCollectionFunctionImport = "ComplexCollectionFunctionImport",
PrimitiveFunctionImport = "PrimitiveFunctionImport",
PrimitiveCollectionFunctionImport = "PrimitiveCollectionFunctionImport",
CommonExpression = "CommonExpression",
AndExpression = "AndExpression",
OrExpression = "OrExpression",
EqualsExpression = "EqualsExpression",
NotEqualsExpression = "NotEqualsExpression",
LesserThanExpression = "LesserThanExpression",
LesserOrEqualsExpression = "LesserOrEqualsExpression",
GreaterThanExpression = "GreaterThanExpression",
GreaterOrEqualsExpression = "GreaterOrEqualsExpression",
HasExpression = "HasExpression",
AddExpression = "AddExpression",
SubExpression = "SubExpression",
MulExpression = "MulExpression",
DivExpression = "DivExpression",
ModExpression = "ModExpression",
NotExpression = "NotExpression",
BoolParenExpression = "BoolParenExpression",
ParenExpression = "ParenExpression",
MethodCallExpression = "MethodCallExpression",
IsOfExpression = "IsOfExpression",
CastExpression = "CastExpression",
NegateExpression = "NegateExpression",
FirstMemberExpression = "FirstMemberExpression",
MemberExpression = "MemberExpression",
PropertyPathExpression = "PropertyPathExpression",
ImplicitVariableExpression = "ImplicitVariableExpression",
LambdaVariable = "LambdaVariable",
LambdaVariableExpression = "LambdaVariableExpression",
LambdaPredicateExpression = "LambdaPredicateExpression",
AnyExpression = "AnyExpression",
AllExpression = "AllExpression",
CollectionNavigationExpression = "CollectionNavigationExpression",
SimpleKey = "SimpleKey",
CompoundKey = "CompoundKey",
KeyValuePair = "KeyValuePair",
KeyPropertyValue = "KeyPropertyValue",
KeyPropertyAlias = "KeyPropertyAlias",
SingleNavigationExpression = "SingleNavigationExpression",
CollectionPathExpression = "CollectionPathExpression",
ComplexPathExpression = "ComplexPathExpression",
SinglePathExpression = "SinglePathExpression",
FunctionExpression = "FunctionExpression",
FunctionExpressionParameters = "FunctionExpressionParameters",
FunctionExpressionParameter = "FunctionExpressionParameter",
ParameterName = "ParameterName",
ParameterAlias = "ParameterAlias",
ParameterValue = "ParameterValue",
CountExpression = "CountExpression",
RefExpression = "RefExpression",
ValueExpression = "ValueExpression",
RootExpression = "RootExpression",
QueryOptions = "QueryOptions",
CustomQueryOption = "CustomQueryOption",
Expand = "Expand",
ExpandItem = "ExpandItem",
ExpandPath = "ExpandPath",
ExpandCountOption = "ExpandCountOption",
ExpandRefOption = "ExpandRefOption",
ExpandOption = "ExpandOption",
Levels = "Levels",
Search = "Search",
SearchExpression = "SearchExpression",
SearchParenExpression = "SearchParenExpression",
SearchNotExpression = "SearchNotExpression",
SearchOrExpression = "SearchOrExpression",
SearchAndExpression = "SearchAndExpression",
SearchTerm = "SearchTerm",
SearchPhrase = "SearchPhrase",
SearchWord = "SearchWord",
Filter = "Filter",
OrderBy = "OrderBy",
OrderByItem = "OrderByItem",
Skip = "Skip",
Top = "Top",
Format = "Format",
InlineCount = "InlineCount",
Select = "Select",
SelectItem = "SelectItem",
SelectPath = "SelectPath",
AliasAndValue = "AliasAndValue",
SkipToken = "SkipToken",
Id = "Id",
Crossjoin = "Crossjoin",
AllResource = "AllResource",
ActionImportCall = "ActionImportCall",
FunctionImportCall = "FunctionImportCall",
EntityCollectionFunctionImportCall = "EntityCollectionFunctionImportCall",
EntityFunctionImportCall = "EntityFunctionImportCall",
ComplexCollectionFunctionImportCall = "ComplexCollectionFunctionImportCall",
ComplexFunctionImportCall = "ComplexFunctionImportCall",
PrimitiveCollectionFunctionImportCall = "PrimitiveCollectionFunctionImportCall",
PrimitiveFunctionImportCall = "PrimitiveFunctionImportCall",
FunctionParameters = "FunctionParameters",
FunctionParameter = "FunctionParameter",
ResourcePath = "ResourcePath",
CollectionNavigation = "CollectionNavigation",
CollectionNavigationPath = "CollectionNavigationPath",
SingleNavigation = "SingleNavigation",
PropertyPath = "PropertyPath",
ComplexPath = "ComplexPath",
BoundOperation = "BoundOperation",
BoundActionCall = "BoundActionCall",
BoundEntityFunctionCall = "BoundEntityFunctionCall",
BoundEntityCollectionFunctionCall = "BoundEntityCollectionFunctionCall",
BoundComplexFunctionCall = "BoundComplexFunctionCall",
BoundComplexCollectionFunctionCall = "BoundComplexCollectionFunctionCall",
BoundPrimitiveFunctionCall = "BoundPrimitiveFunctionCall",
BoundPrimitiveCollectionFunctionCall = "BoundPrimitiveCollectionFunctionCall",
ODataUri = "ODataUri",
Batch = "Batch",
Entity = "Entity",
Metadata = "Metadata"
}
export declare const LexerTokenType: typeof TokenType;
export type LexerTokenType = TokenType;
export declare class Token {
position: number;
next: number;
value: any;
type: TokenType;
/**
* raw string of token
*/
raw: string;
metadata: any;
constructor(token: {
position: number;
next: number;
value: any;
type: TokenType;
raw: string;
metadata?: any;
});
}
export type LexerToken = Token;
export declare function tokenize(value: SourceArray, index: number, next: number, tokenValue: any, tokenType: TokenType, metadataContextContainer?: Token): Token;
export declare function clone(token: any): Token;
export declare function ALPHA(value: number): boolean;
export declare function DIGIT(value: number): boolean;
export declare function HEXDIG(value: number): boolean;
export declare function AtoF(value: number): boolean;
export declare function DQUOTE(value: number): boolean;
export declare function SP(value: number): boolean;
export declare function HTAB(value: number): boolean;
export declare function VCHAR(value: number): boolean;
export declare function whitespaceLength(value: any, index: any): 1 | 3;
export declare function OWS(value: SourceArray, index: number): number;
export declare function RWS(value: SourceArray, index: number): number;
export declare function BWS(value: SourceArray, index: number): number;
export declare function AT(value: SourceArray, index: number): number;
export declare function COLON(value: SourceArray, index: number): number;
export declare function COMMA(value: SourceArray, index: number): number;
export declare function EQ(value: SourceArray, index: number): number;
export declare function SIGN(value: SourceArray, index: number): number;
export declare function SEMI(value: SourceArray, index: number): number;
export declare function STAR(value: SourceArray, index: number): number;
export declare function SQUOTE(value: SourceArray, index: number): number;
export declare function OPEN(value: SourceArray, index: number): number;
export declare function CLOSE(value: SourceArray, index: number): number;
export declare function unreserved(value: number): boolean;
export declare function otherDelims(value: SourceArray, index: number): number;
export declare function subDelims(value: SourceArray, index: number): number;
export declare function pctEncoded(value: SourceArray, index: number): number;
export declare function pctEncodedNoSQUOTE(value: SourceArray, index: number): number;
export declare function pctEncodedUnescaped(value: SourceArray, index: number): number;
export declare function pchar(value: SourceArray, index: number): number;
export declare function pcharNoSQUOTE(value: SourceArray, index: number): number;
export declare function qcharNoAMP(value: SourceArray, index: number): number;
export declare function qcharNoAMPDQUOTE(value: SourceArray, index: number): number;
export declare function base64char(value: number): boolean;
export declare function base64b16(value: SourceArray, index: number): number;
export declare function base64b8(value: SourceArray, index: number): number;
export declare function nanInfinity(value: SourceArray, index: number): number;
export declare function oneToNine(value: number): boolean;
export declare function zeroToFiftyNine(value: SourceArray, index: number): number;
export declare function year(value: SourceArray, index: number): number;
export declare function month(value: SourceArray, index: number): number;
export declare function day(value: SourceArray, index: number): number;
export declare function hour(value: SourceArray, index: number): number;
export declare function minute(value: SourceArray, index: number): number;
export declare function second(value: SourceArray, index: number): number;
export declare function fractionalSeconds(value: SourceArray, index: number): number;
export declare function geographyPrefix(value: SourceArray, index: number): number;
export declare function geometryPrefix(value: SourceArray, index: number): number;
export declare function identifierLeadingCharacter(value: number): boolean;
export declare function identifierCharacter(value: number): boolean;
export declare function beginObject(value: SourceArray, index: number): number;
export declare function endObject(value: SourceArray, index: number): number;
export declare function beginArray(value: SourceArray, index: number): number;
export declare function endArray(value: SourceArray, index: number): number;
export declare function quotationMark(value: SourceArray, index: number): number;
export declare function nameSeparator(value: SourceArray, index: number): number;
export declare function valueSeparator(value: SourceArray, index: number): number;
export declare function escape(value: SourceArray, index: number): number;