web-dev-qa-db-ja.com

「解析」の反対は何ですか?

SQLクエリをそのクエリの抽象表現に解析する関数、parseQueryがあります。

クエリの抽象表現を取り、SQLクエリ文字列を返す関数を作成しようとしています。

2番目の関数を何と呼ぶべきですか?

147
Simon

あなたが望む動詞は「作曲」だと思います。

200
Joel Coehoorn

parseの反対はserializeです

79
Yuval Adam

コンパイラの用語では、反対は「解析なし」です。具体的には、解析するとトークンのストリームが抽象構文ツリーに変わり、解析しないと抽象構文ツリーがトークンのストリームに変わります。

32
Barry Kelly

作成しますか?クエリを解析するとき、その構成要素(トークンなど)に分割します。逆は、部分を文字列クエリに構成します。

31
Michael Brown

既存の命名を補完するには、composeQueryが最適です。

しかし、一般的な場合、解析の反対はǝsɹɐdです

21
danja

次のいずれかを使用します。

  • ToString()
  • ToSQL()
  • Render()
20
Sklivvz

「シリアライズ」はおそらくあなたが望む言葉だ​​と思います。これは、プログラムからエクスポート(およびインポート)できるデータのテキスト表現を作成することを意味します。

17
Kyle Cronin

「分析」の反意語は「合成」です。

15
Mike F

ToQueryString()

13
plinth

確実にレンダリングします。

12
David Mitchell

何かを追加するだけです。

確かに解析は双方向のWordです。

要約をクエリに解析できます。

クエリを抽象に解析できます。

質問は、メソッドの後半部分に何と名前を付けるかです。このインスタンスでは、抽象を解析してクエリを作成するため、parseAbstractと呼びます。

質問に答えるために、構文解析には正反対がありません。

10
Henry B

私はそれをconstructQueryと呼びます。

10
Sec

おそらく生成または放出します。

10
DGentry

generateQuery、おそらく? createQuery?

9
Dre

好きなものを選んでください

  • 生成する
  • ダンプ
  • シリアライズ
  • 出す

それぞれにわずかに異なる意味合いがあります。

8
Mike Graham

多分 prettyPrintQuery

7
fhe

クラスおよびその関連演算子の性質に応じて、作成、構築、生成、レンダリング、凝縮、削減、toSQL、toString

7
MikeJ

従来のコンパイラには、パーサーとコードジェネレーターの2つの部分があります。

したがって、「生成」と呼ぶことができます。もちろん、コンパイラはソースコードを記述していないため、ここでは少し異なります。 (プリコンパイラでない限り)。

6
Walter Mitty

おそらくFormat()。インスタンスのToSQL()?

5
Omar Kooheji

unParse()?冗談ですが、toQueryString()を使用します

5
Ben Hoffstein

私は、解析と...の代わりに、シリアル化と逆シリアル化を言うでしょう.

4

平らにしますか?

解析されたクエリオブジェクトは、おそらく1次元の文字列に「フラット化」する条件階層を表します。

ただし、オブジェクトから文字列に移動する場合、実際にはtoStringまたはtoSQL()などを使用します。また、適切に設計し、適切なアプリを使用している場合は、後で名前を変更して、その機能に関するコメントを追加することができます。

4
Josh

レンダーを使用します

> 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'
    }
}
4
Herman Junge

ToString()に行くのは、通常、それらをチェーンネストできるからです(クラス1からクラス2に、またはその逆に渡すことができる関数の反対側)。

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

Serialize()はナイスな選択肢のように見えますが、Deserialize()にはすでに反対の機能があります。

特定のシナリオでは、他の人が指摘したように、ToSql()も良い選択です。

4
Filini

私は通常、変換方法として「解析」を使用しているため、「変換」の反対側の単語を見つけることができません。 (「変換解除」は一種の変換そのものなので、何かを「変換解除」することはできません)。

このように考えると、(私にとって)最善の解決策は、異なる引数を受け取る2つの「解析」メソッドを持つことです。例(Java):

public class FooBarParser{

    public Foo parse(Bar bar);
    public Bar parse(Foo foo); 
}
3
David Paulo

AsSQL()またはさらに多くのasQuery()はどうですか?

3
Müge

INHOシリアライズ、シンセシスは良いオプションです。また、parseQueryという名前のとおり、codeQueryを使用します

3
mbmihura

生成のために+1、ただし生成するもの、つまりGenerateSQL()

3
Tom Lahti

「作曲」に投票しましたが、それが気に入らない場合は「ビルド」も提案します

3
Guy

deparse

解析は、次のように解析します。

  • 逆コンパイルはコンパイルすることです
  • 分解は構成することです
  • 逆シリアル化はシリアル化することです
  • degroovyはグルーヴィーです:);)

解析/解析は構造の変更ではなく、変換です。同等のテキスト形式と抽象構文ツリー形式の間の正確な変換。すべての関係と構造を維持します。

「構成」は構造の変更を意味するため、まったく正しくありません。 (通常は初めて)別々の独立した部分から結合することをお勧めします。 「分解」が独立した部分への分割を示唆するように。形式だけでなく、フォームを変更します。

クイック検索ショーでは、以下で使用されている用語が表示されます。

2
Glen Best

writeQuery。解析は、文字列からそれを読み取り、オブジェクト(「実際」と言います)表現を作成する行為です。その反対は、オブジェクトを文字列に書き込むことです。

0
helios

.GetSqlQuery()が私の選択です

0
Xaqron