好的,我们的基本思想是在SQL之上构造一种语言。我们的主要目标是预处理包含不同内容的SQL字符串,解析我们"发明"的语言,在另一端生成SQL并最终执行该SQL字符串。
这将是类似的东西ASP/PHP做的HTML(我知道这是语义上不正确的,我只是在寻找语法部分)
我们已经有了一个像魅力一样工作的解析器,但是随着查询越来越长,我们不断向"语言"中添加新功能,如果我有notepad++来正确地突出显示我的语法,我会很高兴。
代码示例:
WHERE PARENT_ID = {GETVAR|PARENT_ID**'}
它所做的就是获取名为PARENT_ID的变量,并将其填充到被2 '包围的地方。它看起来像
WHERE PARENT_ID = 'a parent'
我一直在挣扎的是单引号,这是不匹配的,不应该被识别为SQL字符串,因为它在我们的小"函数"内。如何正确地告诉notepad++避免这样的单引号如果在{和}?
您可以通过从PL-SQL示例开始并添加扩展来创建用户定义的语言。它没有内部解析器那么强大,但它允许你:
- 添加
'
作为新关键字,例如 - 将
*
加入操作符, - 并创建一个新的分隔符
{}
,允许操作符和新关键字在其中。
这将排除'...'
分隔符,并允许'
关键字,这正是您想要的。
注意关键字需要分开,'
只有在*
是操作符时才会是关键字(因此用作分隔符)。此外,您可能需要编写'
而不仅仅是'
。