原生扩展:重要的 NativeCall 机制
SyntaxFlow 的高级关键特性之一是使用 NativeCall 函数。这些函数是预先定义的,可在语言内部提供各种实用功能。本教程将介绍 NativeCall 函数的概念,解释其用法,并提供可用函数的完整列表及其描述。
简介
在 SyntaxFlow 中,NativeCall(原生调用)是预封装的函数,允许用户在规则中执行各种高级操作。这些函数用于操作、检查和转换数据结构,促进高级代码分析和转换任务。通过 NativeCall,用户无需编写复杂的逻辑即可实现复杂的数据处理需求,大大提升了 SyntaxFlow 的灵活性和功能性。
NativeCall 语法定义
NativeCall 的语法结构如下:
<nativeCallName(arg1, argName="value", ...)>
其中:
<
:标记 NativeCall 的开始。nativeCallName
:要使用的 NativeCall 函数名称。(...)
:包含函数参数的圆括号。>
:标记 NativeCall 的结束。
完整的 eBNF 描述
nativeCall
: '<' useNativeCall '>'
;
useNativeCall
: identifier useDefCalcParams?
;
useDefCalcParams
: '{' nativeCallActualParams? '}'
| '(' nativeCallActualParams? ')'
;
nativeCallActualParams
: lines? nativeCallActualParam (',' lines? nativeCallActualParam)* ','? lines?
;
nativeCallActualParam
: (nativeCallActualParamKey (':' | '='))? nativeCallActualParamValue
;
nativeCallActualParamKey
: identifier
;
nativeCallActualParamValue
: identifier | numberLiteral | '`' ~'`'* '`' | '$' identifier | hereDoc
;