0

我需要从脚本的一组输入中生成一个脚本(星号 OBD 脚本),一种带有例程和子例程的 shell 脚本。我需要用Java来做。使用哪种设计模式进行代码生成?我尝试了模板模式和命令模式,但半途而废并停止了。任何想法、设计、文档和其他将不胜感激。

下面是示例代码。注 1:<> 是作为输入提供的参数。注2:嵌套的dtmf信息,取决于子程序的编码。让我知道是否需要更多解释。

[<context_name>]
exten => answered,1,set(actionid=actionid:${ACTIONID})
same => n, wait(1)
same => n, read(input,<file path>/<file>,1,,,10)
same => n, gotoif($[${input}=1]?1pressed,1)
same => n, gotoif($[${input}=2]?2pressed,1)
same => n, noop("No/Invalid input")
same => n,hangup

exten => 1pressed,1,read(inputsub,<file path>/<play1>,1,,,10)
same => n, gotoif($[${input}=1]?1subpressed,1)
same => n, gotoif($[${input}=2]?2subpressed,1)
same => n, noop("No/Invalid input")
same => n,hangup
same => n(1subpressed),playback(<file path>/<playsub11>)
same => n,hangup
same => n(2subpressed),playback(<file path>/<playsub12>)
same => n,hangup

exten => 2pressed,1,playback(<file path>/<play2>)
same => n,hangup


exten =>h,1, set(CDR(userfield)=$actionid)
same => n, hangup
4

1 回答 1

0

这对于您需要做的事情可能有点过头了,但是在模型驱动的项目中,我已经使用 Eclipse M2T ( http://www.eclipse.org/modeling/m2t/ )实现了几个基于 EMF 模型的扩展代码生成器,尽管当时它被称为 openArchitectureWare。

不过,您的输入需要作为模型提供,并且您需要熟悉 M2T 中用于生成 XPand 等代码的语言

于 2013-09-25T10:06:27.973 回答