在SQL之上定义用户定义的语言

时间:2015-05-25 15:14:38

标签: notepad++ syntax-highlighting highlighting user-defined

好的,我们的基本想法是在SQL之上构建一种语言。主要目标是让我们预处理包含SQL的字符串与不同的东西混合,解析我们的“发明”语言,在另一端生成SQL并最终执行该SQL字符串。

这将类似于ASP / PHP对HTML的处理(我知道这在语义上是不正确的,我只是在寻找语法部分)

我们已经有了一个像魅力一样工作的解析器,但随着查询越来越长,我们继续在“语言”中添加新功能,如果我使用Notepad ++正确地突出我的语法,我会很高兴

代码示例

WHERE PARENT_ID = {GETVAR|PARENT_ID**'}

这基本上做的是获取名为PARENT_ID的变量,并将其填充在由两个'包围的那个地方。它看起来像

WHERE PARENT_ID = 'a parent'

我一直在努力的是单引号,它是无法匹配的,并且不应该被识别为SQL字符串,因为它在我们的litle“函数”中。如果在{和}内部,如何正确地告诉notepad ++避免使用这样的单引号?

非常感谢。

1 个答案:

答案 0 :(得分:1)

您可以从PL-SQL示例开始并添加扩展程序来创建用户定义的语言。它没有内部解析器那么强大,但它可以让你:

  1. '添加为新关键字,例如
  2. *添加到运营商
  3. 并创建一个新的分隔符{},允许运算符及其中的新关键字。
  4. 这将排除'...'分隔符并允许'关键字,这是您的意图。

    注意关键字需要分开,'只有*是运算符(因此作为分隔符)才能成为关键字。此外,您可能需要撰写\'而不仅仅是'