“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