可以对如下文本做解析:
<!-- CS: delnext -->
dfdfdfd
#CS: replace a {
dfdfdf
helloc
#CS:}
现在没有头绪的是STRING定义,如果这个能做好,那基本上可以着手开发代码了
后期支持嵌套,或者if,表达式等,辅助函数等觉得不太难,现在没有想铺的太大,做起来费劲。毕竟没有这么多时间
//////////////////////////////////////////////////////////////////
grammar T2;
options {backtrack=true;}
txt: (commandLine|contentLine|comment)*;
commandLine
scope {
boolean isSingleLine;
boolean hasEnd;
}
@init{
$commandLine::isSingleLine = true;
$commandLine::hasEnd = false;
}
: commentChar 'CS:' key (csbegin {$commandLine::isSingleLine=false;})? commentCharEnd? NEWLINE parasLine (csend )? ;
csbegin
: '{';
csend
: commentChar 'CS:}' commentCharEnd NEWLINE;
parasLine
: {$commandLine::isSingleLine}?=>singleLine{System.out.println("single line");}
| mutilLine{System.out.println("mutilple line");}
;
singleLine
: contentLine;
mutilLine
: contentLine+;
key
: replace
| 'delnext'
;
replace
: 'replace a'
| 'replace b'
;
contentLine
: STRING NEWLINE;
comment
: commentChar contentLine
;
commentChar
: '#'
| '//'
| '/*' {$commandLine::hasEnd = true;}
| '<!-- '{$commandLine::hasEnd = true;}
;
commentCharEnd
: {$commandLine::hasEnd}?=>'*/'
| {$commandLine::hasEnd}?=>'-->'
|
;
WS : (' '|'\t')+ {skip();} ;
STRING
: ('a'..'z')*
;
NEWLINE: ('\r'? '\n')+;
分享到:
相关推荐
函数定义的基本语法如下: ```eScript function functionName(param1 : Type1, param2 : Type2) : ReturnType { // function body } ``` 例如,定义一个返回两个整数之和的函数: ```eScript function addNumbers...
oracel support官方提供的siebel escript最佳实践以及其他人总结的siebel escript最佳实践.(资料是英文的)
### Siebel eScript知识点概述 #### 一、Siebel eScript简介 - **定义与作用**:Siebel eScript是一种脚本语言,主要用于Siebel CRM系统中的自动化处理、业务逻辑实现以及用户界面定制等场景。它能够帮助开发人员...
Siebel eScript是一种在Siebel CRM系统中用于增强和自定义业务逻辑的脚本语言。在实际应用中,优化eScript对于提升系统性能至关重要。以下是一些关键的优化策略: 1. **优先考虑非脚本解决方案**:在编写eScript...
《深入理解escript-开源:探索嵌入式脚本与txt文件操作》 在IT行业中,开源软件一直是推动技术创新的重要力量。"escript-开源"项目正是这样一款以开源为理念,提供强大功能的工具。它允许用户在注释中嵌入脚本,...
语法检查器当前支持erlang源文件(.erl),erlang头文件(.hrl),erlang配置(.config,.rel,.script,.app,.app.src),escript文件(.erl,.escript) ,.es),leex文件(.xrl)和yecc文件(.yrl)。...
erlang-script.rpm 安装mq前的依赖 来源:https://packagecloud.io/rabbitmq/erlang/install#bash-rpm
六角escript格式的Hex.pm集成。联系我们如果在使用此库时发现任何错误或有问题,请在此存储库中(或拉取请求:))。 您可以在检查我们所有的开源项目。建造打造hexer只是运行make escript 。 这将编译项目并在bin/...
windows脚本技术script
EMQX(Erlang MQTT Broker)是一款基于Erlang OTP设计的开源 MQTT 消息代理,它专门针对物联网(IoT)环境进行了优化。MQTT(Message Queuing Telemetry Transport)是一种轻量级的发布/订阅式消息协议,特别适合...
根据提供的文件信息,我们可以归纳出一系列与Siebel系统相关的知识点,包括其背景、用途以及一些基本操作等内容。以下是对这些知识点的详细阐述: ### Siebel系统简介 Siebel系统是Oracle公司提供的一款全面的企业...
在JavaScript中,数组是一种非常灵活的数据结构,提供了许多方法来操作数组元素。以下是对这些数组方法的详细汇总。 1. join()方法 join()方法用于将数组中的所有元素连接成一个字符串。如果不指定分隔符,默认使用...
ECMAScript 6.0(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了。它的目标,是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。
一维的doa角度估计escript程序,利用的是LS-ESCRIPT算法
BBEdit 的 Erlang 语言模块 v1.4, (2018/01/14) Erlang语言模块为BBEdit 11和更高版本的Erlang编程语言引入了语法着色,自动完成,功能导航和代码折叠。 它识别以下 Erlang 文件: erlang 源代码 (.erl) erlang 包含...
当尝试运行`escript.ext`时,系统提示该文件“停止工作”,这通常意味着出现了崩溃或未预期的错误。这可能是由于缺少必要的依赖、文件损坏、不兼容性问题或者权限设置不当等原因导致的。 “mqtt”标签表明了这个...
EMQ X 是一款高度可扩展、高性能的 MQTT 消息代理,它是一个开源的 MQTT 服务器,专为物联网(IoT)设计。标题中的 "emqx-4.2.5.zip" 指的是 EMQ X 的特定版本,4.2.5,这个版本已经打包成 ZIP 压缩文件供用户下载和...
编写Parse_trans是为了捕获Erlang的语法转换和代码生成中的一些有用模式。 最值得注意的是,也许模块为记录生成了标准化的访问器函数,而使得可以在编译时评估表达式并将结果替换为编译时常量。 鲜为人知的模块,...
源代码编辑器ActiveX Control,每种编程语言都具有语法提示,至今为止已有70多种,如PYTHON,CPP,HTML,xml,PERL,SQL,VB,Properties,ERRORLIST,MAKEFILE,BATCH,XCODE,LATEX,LUA,DIFF,CONF ,PASCAL,...
7. **escript6**:ES6(ECMAScript 2015)是JavaScript的最新版本,引入了许多新特性和语法糖,如let和const、解构赋值、箭头函数、类等。在编写Vue组件和业务逻辑时,我们使用了ES6语法,提高了代码的可读性和简洁...