“parsing”的反义词是什么?

我有一个函数parseQuery,它将SQL查询parsing为该查询的抽象表示forms。

我即将编写一个函数,它将抽象表示查询并返回一个SQL查询string。

我应该怎么称呼第二个function?

我认为你想要的动词是“撰写”的。

parsing的对面是序列化

撰写? 当parsing一个查询时,你把它分解成它的组成部分(标记等),反过来将把这些部分组成一个string查询。

在编译器术语中,相反的是“unparse”。 具体而言,parsing将令牌stream转换为抽象语法树,而parsing则将抽象语法树转换为令牌stream。

我会使用其中的一个:

  • 的ToString()
  • ToSQL()
  • 渲染()

为了补充您现有的命名, composeQuery看起来最好。

但在一般情况下,parsing的对立面就是这样

“分析”的反义词是“综合”。

我认为“序列化”可能是你想要的字。 它意味着产生可以从程序导出(和导入)的数据的文本表示。

ToQueryString()

绝对渲染。

我会把它叫做constructQuery。

生成或发射,可能。

只是添加一些东西。

当然,parsing是一个双向的词。

您可以将摘要parsing为查询。

您可以将查询parsing为摘要。

问题应该是,你怎样命名该方法的后半部分,因为在这个例子中,你正在parsing一个抽象来创build一个查询,你会把它parseAbstract

为了回答这个问题,parsing没有任何相反的地方。

generateQuery,可能? 的createQuery?

根据类的性质及其相关的操作符编写,构build,生成,渲染,压缩,缩小,toSQL,toString

也许prettyPrintQuery ?

拿你的select

  • 生成
  • 倾倒
  • 连载
  • 发射

他们每个都有略微不同的内涵。

传统的编译器有两部分:parsing器和代码生成器。

所以你可以称之为“生成”。 当然,这里有点不同,因为编译器不是编写源代码。 (除非它是预编译器)。

可能的格式()。 或ToSQL()在你的实例?

unParse()? 只是在开玩笑,我会去toQueryString()

扁平化?

parsing后的查询对象可能代表一个条件层次结构,将其“压平”回一维string。

但是,假设你从一个对象到另一个对象,实际上只是使用toString或toSQL()或类似的东西。 此外,如果你devise得很好,并使用正确的应用程序,你可以稍后重命名,只是在注释中粘贴东西。

生成+1,但要处理你正在生成的内容,即GenerateSQL()

我会说序列化和反序列化,而不是parsing和…

我会去ToString(),因为你通常可以链接它们(相反的function,让你从Class1传递到Class2,反之亦然)

 DateTime.Parse( DateTime.Parse( myDate.ToString() ).ToString() ); 

Serialize()看起来是一个不错的select,但在Deserialize()中已经有了相反的地方。

正如其他人指出的,在你的具体情况下,ToSql()是另一个不错的select。

我会使用渲染

 > a = 'html': { 'head': {'title': 'My Page'}, 'body': { 'h1': 'Hello World', 'p': 'This is a Paragraph' } } > b = render(a) > console.log(b) <html> <head> <title>My Page</title> </head> <body> <h1>Hello World</h1> <p>This is a Paragraph</p> </body> </html> 

哪个是恕我直言,与parse()相反

 > c = parse(b) { 'html': { 'head': { 'title': 'My Page' } 'body': { 'h1': 'Hello World', 'p': 'This is a Paragraph' } } 

我通常使用“parsing”作为转换方法,因此,我无法find一个相反的词“转换”。 (你不能“转换”某些东西,因为“转换”本身就是一种转换)。

思考这种方式,最好的解决scheme(对我来说)是有两个“parsing”方法接收不同的论点。 示例(Java):

 public class FooBarParser{ public Foo parse(Bar bar); public Bar parse(Foo foo); } 

我投了“写”,但如果你不喜欢,我也build议“build立”

怎么样asSQL()甚至更多的查询()?

INHO序列化,综合是很好的select。 另外,正如你命名parseQuery,我会去与codeQuery

deparse

deparse是parsing,如:

  • 反编译就是编译
  • 分解就是组成
  • 反序列化就是序列化
  • degroovy是groovy :);)

parsing/parsing不是结构的变化,而是转换。 在等效文本和抽象语法树格式之间精确转换,保持所有关系和结构。

“撰写”是指结构的变化,所以不太正确。 它build议从不同的独立部分(通常是第一次)合并。 正如“分解”build议分裂成独立的部分。 他们改变forms,而不仅仅是格式。

一个快速search显示的术语用在:

  • Perl: http : //perldoc.perl.org/B/Deparse.html
  • R: http : //www.hep.by/gnu/r-patched/r-lang/R-lang_98.html
  • Common Lisp: http : //www.clisp.org/impnotes/dffi.html#c-type-parse
  • PostgreSQL: http : //doxygen.postgresql.org/deparse_8c.html
  • Eclipse: http : //www.eclipse.org/forums/index.php/t/201883/
  • Unix Korn Shell: http : //www.sourcecodebrowser.com/ksh/93tplus-p/deparse_8c.html