“解析”的反义词是什么?

时间:2008-09-29 14:18:21

标签: parsing language-agnostic semantics naming

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

我即将编写一个函数,它接受一个查询的抽象表示并返回一个SQL查询字符串。

我应该将第二个功能称为什么?

33 个答案:

答案 0 :(得分:200)

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

答案 1 :(得分:79)

解析的反面是序列化

答案 2 :(得分:32)

在编译器术语中,相反的是“unsarse”。具体来说,解析将令牌流转换为抽象语法树,而解析将抽象语法树转换为令牌流。

答案 3 :(得分:31)

撰写?在解析查询时,将其分解为组成部分(标记等),反之则是将这些部分组合成字符串查询。

答案 4 :(得分:21)

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

但在一般情况下,与解析相反的是ǝsɹɐd

答案 5 :(得分:20)

我会使用以下其中一种:

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

答案 6 :(得分:17)

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

答案 7 :(得分:15)

'analyze'的反义词是'合成'。

答案 8 :(得分:13)

ToQueryString()

答案 9 :(得分:12)

绝对渲染。

答案 10 :(得分:10)

只是添加一些东西。

当然,解析是双向的。

您可以将摘要解析为查询。

您可以将查询解析为摘要。

问题应该是,你为方法的后半部分命名了什么,并且因为在这个例子中你正在解析一个抽象来做一个你称之为parseAbstract的查询。

要回答这个问题,解析没有反面意义。

答案 11 :(得分:10)

生成或发射,可能。

答案 12 :(得分:10)

我称之为constructQuery。

答案 13 :(得分:9)

generateQuery,可能吗?的createQuery?

答案 14 :(得分:8)

选择

  • 生成
  • 转储
  • 序列化
  • 的Emit

它们各自的内涵略有不同。

答案 15 :(得分:7)

根据类及其相关运算符的性质,编写,构造,生成,呈现,压缩,缩减toSQL,toString

答案 16 :(得分:7)

也许prettyPrintQuery

答案 17 :(得分:6)

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

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

答案 18 :(得分:5)

unParse()?开个玩笑,我会选择toQueryString()

答案 19 :(得分:5)

可能格式化()。你实例中的ToSQL()?

答案 20 :(得分:4)

弄平?

解析后的查询对象可能代表一个条件层次结构,您将其“展平”回一维字符串。

但是考虑到你从一个对象到另一个字符串,实际上只是使用toString或toSQL()或类似的东西。此外,如果您设计得很好并使用了正确的应用程序,您可以稍后重命名,只需在评论中添加内容即可。

答案 21 :(得分:4)

我会说序列化和反序列化,而不是解析和...

答案 22 :(得分:4)

我会选择ToString(),因为你通常可以对它们进行链式嵌套(相反的函数,让你从Class1传递给Class2,反之亦然)

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

Serialize()看起来是一个不错的选择,但它在Deserialize()中已经相反。

在您的特定场景中,正如其他人指出的那样,ToSql()是另一个不错的选择。

答案 23 :(得分:4)

我会使用渲染

> 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>

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

> c = parse(b)

{ 'html': {
    'head': {
        'title': 'My Page'
    }
    'body': {
        'h1': 'Hello World',
        'p': 'This is a Paragraph'
    }
}

答案 24 :(得分:3)

我通常使用&#34;解析&#34;作为转换方法,因此,我找不到&#34;转换&#34;的相反字词。 (你可以&#39;#34; deconvert&#34;某些东西,因为&#34; unsvert&#34;是一种转换本身。)

以这种方式思考,最好的解决方案(对我来说)就是有两个&#34;解析&#34;接收不同参数的方法。示例(Java):

public class FooBarParser{

    public Foo parse(Bar bar);
    public Bar parse(Foo foo); 
}

答案 25 :(得分:3)

INHO序列化,合成是很好的选择。此外,正如您已命名parseQuery,我将使用codeQuery

答案 26 :(得分:3)

asSQL()甚至更多asQuery()怎么样?

答案 27 :(得分:3)

我投票赞成'撰写',但如果你不喜欢,我也建议'建立'

答案 28 :(得分:3)

+1代表生成,但是你要生成什么,即GenerateSQL()

答案 29 :(得分:2)

<强> deparse

Deparse将解析,如:

  • 反编译是编译
  • 分解是撰写
  • 反序列化是序列化
  • degroovy是groovy :);)

解析/去除不是结构的变化,而是转换。等效文本和抽象语法树格式之间的精确转换,维护所有关系和结构

“撰写”意味着结构的变化,所以不太对。它建议从单独的独立部分组合(通常是第一次)。就像“分解”表明分裂成独立的部分一样。他们改变形式,而不仅仅是格式。

快速搜索节目中使用的术语:

答案 30 :(得分:0)

.GetSqlQuery()将是我的选择

答案 31 :(得分:0)

writeQuery。 Parse是从字符串中读取它并创建对象(比如说'实际')表示的行为。 相反的是将对象写入字符串。

答案 32 :(得分:-6)

我相信您正在寻找的答案是:“首先不解析SQL或汇编SQL。使用对象/关系映射器并通过解决已经解决的问题而不再浪费您的雇主的钱一段时间。“