`
javamonkey
  • 浏览: 169628 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

EScript 语法大概样子

 
阅读更多
可以对如下文本做解析:
<!-- 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')+;






0
0
分享到:
评论

相关推荐

    eScript Language Reference

    函数定义的基本语法如下: ```eScript function functionName(param1 : Type1, param2 : Type2) : ReturnType { // function body } ``` 例如,定义一个返回两个整数之和的函数: ```eScript function addNumbers...

    siebel escript best practices

    oracel support官方提供的siebel escript最佳实践以及其他人总结的siebel escript最佳实践.(资料是英文的)

    Siebel eScriptt

    ### Siebel eScript知识点概述 #### 一、Siebel eScript简介 - **定义与作用**:Siebel eScript是一种脚本语言,主要用于Siebel CRM系统中的自动化处理、业务逻辑实现以及用户界面定制等场景。它能够帮助开发人员...

    Siebel eScript 如何优化

    Siebel eScript是一种在Siebel CRM系统中用于增强和自定义业务逻辑的脚本语言。在实际应用中,优化eScript对于提升系统性能至关重要。以下是一些关键的优化策略: 1. **优先考虑非脚本解决方案**:在编写eScript...

    escript-开源

    《深入理解escript-开源:探索嵌入式脚本与txt文件操作》 在IT行业中,开源软件一直是推动技术创新的重要力量。"escript-开源"项目正是这样一款以开源为理念,提供强大功能的工具。它允许用户在注释中嵌入脚本,...

    syntaxerl:Erlang的语法检查器

    语法检查器当前支持erlang源文件(.erl),erlang头文件(.hrl),erlang配置(.config,.rel,.script,.app,.app.src),escript文件(.erl,.escript) ,.es),leex文件(.xrl)和yecc文件(.yrl)。...

    erlang-script.rpm.sh

    erlang-script.rpm 安装mq前的依赖 来源:https://packagecloud.io/rabbitmq/erlang/install#bash-rpm

    hexer:escript格式的Hex.pm集成

    六角escript格式的Hex.pm集成。联系我们如果在使用此库时发现任何错误或有问题,请在此存储库中(或拉取请求:))。 您可以在检查我们所有的开源项目。建造打造hexer只是运行make escript 。 这将编译项目并在bin/...

    windows脚本技术script

    windows脚本技术script

    emqx-windows-exception.zip mqtt

    EMQX(Erlang MQTT Broker)是一款基于Erlang OTP设计的开源 MQTT 消息代理,它专门针对物联网(IoT)环境进行了优化。MQTT(Message Queuing Telemetry Transport)是一种轻量级的发布/订阅式消息协议,特别适合...

    siebel手册

    根据提供的文件信息,我们可以归纳出一系列与Siebel系统相关的知识点,包括其背景、用途以及一些基本操作等内容。以下是对这些知识点的详细阐述: ### Siebel系统简介 Siebel系统是Oracle公司提供的一款全面的企业...

    超详细的javascript数组方法汇总

    在JavaScript中,数组是一种非常灵活的数据结构,提供了许多方法来操作数组元素。以下是对这些数组方法的详细汇总。 1. join()方法 join()方法用于将数组中的所有元素连接成一个字符串。如果不指定分隔符,默认使用...

    ECMAScript6入门优化版.pdf

    ECMAScript 6.0(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了。它的目标,是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。

    ESPRITII.zip_doa algorithm

    一维的doa角度估计escript程序,利用的是LS-ESCRIPT算法

    erlang-bblm:BBEdit 的 Erlang 语言模块

    BBEdit 的 Erlang 语言模块 v1.4, (2018/01/14) Erlang语言模块为BBEdit 11和更高版本的Erlang编程语言引入了语法着色,自动完成,功能导航和代码折叠。 它识别以下 Erlang 文件: erlang 源代码 (.erl) erlang 包含...

    script运行库2020.03.25-X64.zip

    当尝试运行`escript.ext`时,系统提示该文件“停止工作”,这通常意味着出现了崩溃或未预期的错误。这可能是由于缺少必要的依赖、文件损坏、不兼容性问题或者权限设置不当等原因导致的。 “mqtt”标签表明了这个...

    emqx-4.2.5.zip

    EMQ X 是一款高度可扩展、高性能的 MQTT 消息代理,它是一个开源的 MQTT 服务器,专为物联网(IoT)设计。标题中的 "emqx-4.2.5.zip" 指的是 EMQ X 的特定版本,4.2.5,这个版本已经打包成 ZIP 压缩文件供用户下载和...

    parse_trans:解析用于Erlang的转换实用程序

    编写Parse_trans是为了捕获Erlang的语法转换和代码生成中的一些有用模式。 最值得注意的是,也许模块为记录生成了标准化的访问器函数,而使得可以在编译时评估表达式并将结果替换为编译时常量。 鲜为人知的模块,...

    ahmed-amin-elsheshtawy-source-code-editor-activex-control-for-all-languages-scintilla-acti__1-64376-e language source code

    源代码编辑器ActiveX Control,每种编程语言都具有语法提示,至今为止已有70多种,如PYTHON,CPP,HTML,xml,PERL,SQL,VB,Properties,ERRORLIST,MAKEFILE,BATCH,XCODE,LATEX,LUA,DIFF,CONF ,PASCAL,...

    vuejs入门实战--共享单车后台管理

    7. **escript6**:ES6(ECMAScript 2015)是JavaScript的最新版本,引入了许多新特性和语法糖,如let和const、解构赋值、箭头函数、类等。在编写Vue组件和业务逻辑时,我们使用了ES6语法,提高了代码的可读性和简洁...

Global site tag (gtag.js) - Google Analytics