「解析」の反対は何ですか? [閉まっている]
-
02-07-2019 - |
質問
SQLクエリをそのクエリの抽象表現に解析する関数parseQueryがあります。
クエリの抽象表現を取り、SQLクエリ文字列を返す関数を作成しようとしています。
2番目の関数は何を呼び出すべきですか?
解決
あなたが望む動詞は「作曲」だと思います。
他のヒント
parse の反対は serialize
ですコンパイラの用語では、反対は" unparse"です。具体的には、解析するとトークンのストリームが抽象的な構文ツリーに変わり、解析しないと抽象的な構文ツリーがトークンのストリームに変わります。
作成しますか?クエリを解析するとき、それを構成部分(トークンなど)に分割します。逆は、部分を文字列クエリに構成します。
既存の命名を補完するには、 composeQuery が最適です。
しかし、一般的な場合、解析の反対はǝ sɹɐ d
です次のいずれかを使用します:
- ToString()
- ToSQL()
- Render()
" serialize"と思うおそらくあなたが望む言葉です。これは、プログラムからエクスポート(およびインポート)できるデータのテキスト表現を作成することを意味します。
「分析」の反意語は「合成」です。
ToQueryString()
完全にレンダリング。
constructQueryと呼びます。
生成または放出、場合によっては。
何かを追加するだけです。
確かに解析は双方向の言葉です。
要約をクエリに解析できます。
クエリを抽象に解析できます。
質問は、メソッドの後半部分に何と名前を付けるかです。このインスタンスでは、抽象を解析してクエリを作成するため、 parseAbstract
と呼びます。
質問に答えるために、構文解析には反対がありません。
generateQuery、おそらく? createQuery?
選択してください
- 生成
- ダンプ
- シリアル化
- 送信
それぞれわずかに異なる意味合いがあります。
たぶん prettyPrintQuery ?
クラスとその関連演算子の性質に応じて、構成、構築、生成、レンダリング、要約、削減、toSQL、toString
従来のコンパイラには、パーサーとコードジェネレーターの2つの部分があります。
したがって、「生成」と呼ぶことができます。もちろん、コンパイラはソースコードを記述していないため、ここでは少し異なります。 (プリコンパイラでない限り)。
おそらくFormat()。インスタンスのToSQL()?
unParse()?冗談です。toQueryString()を使用します
flatten?
解析されたクエリオブジェクトは、条件フラットを表している可能性があります。 1次元の文字列に戻します。
ただし、オブジェクトから文字列に移動する場合は、実際にはtoStringまたはtoSQL()などを使用します。また、適切に設計して適切なアプリを使用している場合は、後で名前を変更して、その機能に関するコメントを追加するだけです。
解析および...ではなく、シリアライズおよびデシリアライズと言います。
ToString()に行くのは、通常、それらをチェーンネストできるためです(クラス1からクラス2に、またはその逆に渡すことができる関数の反対)
DateTime.Parse( DateTime.Parse( myDate.ToString() ).ToString() );
Serialize()は良い選択のように見えますが、Deserialize()にはすでに反対のものがあります。
他の指摘したように、特定のシナリオでは、ToSql()も適切な選択です。
レンダリングを使用します
> 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'
}
}
+1を生成しますが、生成するもの、つまりGenerateSQL()にタックします
「作成」に投票しましたが、それが気に入らない場合は「ビルド」も提案します
asSQL()またはさらに多くのasQuery()はどうですか?
INHOシリアル化、合成は良いオプションです。また、parseQueryという名前のとおり、codeQueryを使用します
通常&quot; parse&quot;を使用します変換方法として、したがって、「変換」の反対の単語を見つけることができません。 (&quot; unconvert&quot;は変換自体の一種であるため、&quot; deconvert&quot;することはできません)。
このように考えると、(私にとって)最良の解決策は、2つの「解析」することです。異なる引数を受け取るメソッド。例(Java):
public class FooBarParser{
public Foo parse(Bar bar);
public Bar parse(Foo foo);
}
デパース
解析は、次のように解析します:
- decompileはコンパイルすることです
- 分解とは、構成することです
- deserializeはシリアル化することです
- degroovyはgroovyです:);)
解析/解析は構造の変更ではなく、変換です。同等のテキスト形式と抽象構文ツリー形式の間の正確な変換、すべての関係&amp;構造。
&quot;作成&quot;構造の変更を意味するので、まったく正しくありません。 (通常は初めて)別々の独立した部分から結合することをお勧めします。 「分解」と同じように独立した部分に分割することをお勧めします。形式だけでなく、フォームを変更します。
クイック検索ショーは、次の中で使用される用語です:
- 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シェル: http://www.sourcecodebrowser.com/ksh/ 93tplus-p / deparse_8c.html