Class: Parser

Parser

语法分析器 - 递归下降解析器

new Parser()

service/igs/ogc/support/OGCSqlToFilterBuilder.js, line 471

Methods

consume()

service/igs/ogc/support/OGCSqlToFilterBuilder.js, line 487

消费指定类型的 Token

current()

service/igs/ogc/support/OGCSqlToFilterBuilder.js, line 480

获取当前 Token

parse()

service/igs/ogc/support/OGCSqlToFilterBuilder.js, line 1098

解析

parseAnd()

service/igs/ogc/support/OGCSqlToFilterBuilder.js, line 532

解析 AND 表达式

parseComparison()

service/igs/ogc/support/OGCSqlToFilterBuilder.js, line 856

解析比较表达式

parseComparisonTemporal()

service/igs/ogc/support/OGCSqlToFilterBuilder.js, line 1026

解析属性后的时态谓词(OGC FES 2.0 Scope 第4条) 语法: propertyName DURING (begin, end) | BEFORE (instant) | AFTER (instant) | ... 用于 parseComparison() 内部,当属性后跟时态操作符时调用。 不消费属性 token,由调用方 parseComparison() 传入。

parseExpression()

service/igs/ogc/support/OGCSqlToFilterBuilder.js, line 509

解析表达式

parseFunctionArg()

service/igs/ogc/support/OGCSqlToFilterBuilder.js, line 694

解析函数参数

parseFunctionCall()

service/igs/ogc/support/OGCSqlToFilterBuilder.js, line 643

解析 OGC 标准函数调用 语法: functionName(arg1, arg2, ...) 例如: area(shape), strToLowerCase(name), length(boundary) > 1000

parseFunctionCallInternal()

service/igs/ogc/support/OGCSqlToFilterBuilder.js, line 608

解析函数调用(内部方法,不检查后续比较运算符)

parseNot()

service/igs/ogc/support/OGCSqlToFilterBuilder.js, line 550

解析 NOT 表达式 支持两种形式:

  1. NOT (expr) - 标准否定
  2. property NOT IN (values) - 由 parseComparison 处理

parseOr()

service/igs/ogc/support/OGCSqlToFilterBuilder.js, line 517

解析 OR 表达式

parsePrimary()

service/igs/ogc/support/OGCSqlToFilterBuilder.js, line 563

解析主表达式

parsePropertyFunctionCall()

service/igs/ogc/support/OGCSqlToFilterBuilder.js, line 740

解析属性函数调用(无函数名前缀) 语法: propertyName(args...) 例如: area(shape) 直接写成 area(shape)

parseSpatial()

service/igs/ogc/support/OGCSqlToFilterBuilder.js, line 1004

解析空间函数

parseTemporal()

service/igs/ogc/support/OGCSqlToFilterBuilder.js, line 1079

解析时态谓词(OGC FES 2.0 Scope 第4条,源自 ISO 19108) 语法: TEMPORAL_PROP(property, temporalInstantOrPeriod) 语法: DURING / AFTER / BEFORE / BEGINS / ENDS 等 DURING 支持两种形式: DURING(property, timePeriod) → fes:Duringfes:ValueReference...</fes:ValueReference>gml:TimePeriod...</gml:TimePeriod></fes:During> DURING(timePeriod1, timePeriod2) → fes:TEquals 或通过函数表达 其他时态谓词: AFTER / BEFORE / BEGINS / BEGUNBY / ENDS / ENDEDBY / MEETS / METBY / OVERLAPS / OVERLAPPEDBY → fes:After / fes:Before / fes:Begins / ... 等 语法: OPERATOR(property, temporalInstantOrPeriod)

parseValue()

service/igs/ogc/support/OGCSqlToFilterBuilder.js, line 972

解析值

tryConsume()

service/igs/ogc/support/OGCSqlToFilterBuilder.js, line 499

尝试消费指定类型的 Token

Parser.createValueExpressionParser(){Parser}

util/expression/index.js, line 11

创建数值表达式解析器

Returns:
Type Description
Parser