web-dev-qa-db-fra.com

Quel est le contraire de «parse»?

J'ai une fonction, parseQuery, qui analyse une requête SQL en une représentation abstraite de cette requête.

Je suis sur le point d'écrire une fonction qui prend une représentation abstraite d'une requête et renvoie une chaîne de requête SQL.

Comment dois-je appeler la deuxième fonction?

147
Simon

Je pense que le verbe que vous voulez est "composer".

200
Joel Coehoorn

L'opposé de analyser est sérialiser

79
Yuval Adam

Dans la terminologie du compilateur, l'opposé est "non analysé". Plus précisément, l'analyse transforme un flux de jetons en arbres de syntaxe abstraite, tandis que l'analyse ne transforme pas les arbres de syntaxe abstraite en un flux de jetons.

32
Barry Kelly

Composer? Lorsque vous analysez une requête, vous la divisez en ses parties constituantes (jetons, etc.), l'inverse serait de composer les parties en une requête de chaîne.

31
Michael Brown

Pour compléter votre dénomination existante, composeQuery est la meilleure.

Mais dans le cas général, l'opposé de parse est ǝsɹɐd

21
danja

J'utiliserais l'un d'eux:

  • ToString ()
  • ToSQL ()
  • Rendre()
20
Sklivvz

Je pense que "sérialiser" est probablement le mot que vous voulez. Cela signifie produire une représentation textuelle des données qui peuvent être exportées (et importées) à partir du programme.

17
Kyle Cronin

L'antonyme de "analyser" est "synthétiser".

15
Mike F

ToQueryString ()

13
plinth

Certainement rendu.

12
David Mitchell

Juste pour ajouter quelques trucs.

Analyser est certainement un mot à double sens.

Vous pouvez analyser un résumé dans une requête.

Vous pouvez analyser une requête dans un résumé.

La question devrait être, comment nommez-vous la dernière partie de la méthode, et parce que dans ce cas, vous analysez un résumé pour faire une requête, vous l'appeleriez parseAbstract.

Pour répondre à la question, l'analyse n'a pas d'opposé.

10
Henry B

Je l'appellerais constructQuery.

10
Sec

générer ou émettre, éventuellement.

10
DGentry

generateQuery, peut-être? createQuery?

9
Dre

Faites votre choix

  • Produire
  • Déverser
  • Sérialiser
  • Émettre

Ils ont chacun des connotations légèrement différentes.

8
Mike Graham

Peut-être prettyPrintQuery ?

7
fhe

composer, construire, générer, restituer, condenser, réduire, toSQL, toString selon la nature de la classe et ses opérateurs associés

7
MikeJ

Un compilateur traditionnel se compose de deux parties: un analyseur et un générateur de code.

Vous pouvez donc l'appeler "Générer". Bien sûr, c'est un peu différent ici car le compilateur n'écrit pas de code source. (sauf s'il s'agit d'un précompilateur).

6
Walter Mitty

Formater éventuellement (). ou ToSQL () dans votre instance?

5
Omar Kooheji

unParse ()? Je plaisante, j'irais avec toQueryString ()

5
Ben Hoffstein

Je dirais sérialiser et désérialiser, au lieu d'analyser et ...

4
Christophe Herreman

aplatir?

L'objet de requête analysé représente peut-être une hiérarchie de conditions, que vous "aplatissez" en une chaîne à 1 dimension.

Mais étant donné que vous passez de l'objet à la chaîne, utilisez simplement toString ou toSQL () ou quelque chose comme ça. De plus, si vous l'avez bien conçue et utilisez la bonne application, vous pouvez la renommer plus tard et simplement coller des éléments dans les commentaires sur ce qu'elle fait.

4
Josh

J'utiliserais le rendu

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

Qui est à mon humble avis, l'opposé de parse ()

> c = parse(b)

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

Je choisirais ToString (), car vous pouvez généralement les imbriquer en chaîne (fonctions opposées, qui vous permettent de passer de Class1 à Class2 et vice-versa)

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

Serialize () ressemble à un bon choix, mais il a déjà un opposé dans Deserialize ().

Dans votre scénario spécifique, comme d'autres l'ont souligné, ToSql () est un autre bon choix.

4
Filini

J'utilise habituellement "parse" comme méthode de conversion et, par conséquent, je ne trouve pas de mot opposé pour "convertir". (vous ne pouvez pas "déconvertir" quelque chose, car "déconvertir" est un type de conversion lui-même).

de cette façon, la meilleure solution (pour moi) est d'avoir deux méthodes "d'analyse" qui reçoivent des arguments différents. Exemple (Java):

public class FooBarParser{

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

Et asSQL () ou encore asQuery ()?

3
Müge

INHO Sérialiser, synthétiser sont de bonnes options. Aussi, comme vous l'avez nommé parseQuery, j'irai avec codeQuery

3
mbmihura

+1 pour Générer, mais insister sur ce que vous générez, c'est-à-dire GenerateSQL ()

3
Tom Lahti

J'ai voté pour "composer", mais si vous n'aimez pas cela, je suggère également de "construire"

3
Guy

analyse

Déparse consiste à analyser, comme:

  • décompiler est de compiler
  • décomposer c'est composer
  • désérialiser consiste à sérialiser
  • degroovy est trop groovy :);)

L'analyse/l'analyse n'est pas un changement de structure, mais une conversion. Conversion précise entre le texte équivalent et les formats d'arbre à syntaxe abstraite, en conservant toutes les relations et la structure.

"Composer" signifie un changement de structure, ce n'est donc pas tout à fait raison. Il suggère de combiner des parties indépendantes distinctes (généralement pour la première fois). Tout comme "décomposer" suggère de se scinder en parties indépendantes. Ils changent de forme, pas seulement de format.

Une recherche rapide est le terme utilisé dans:

2
Glen Best

writeQuery. L'analyse est l'acte de le lire à partir d'une chaîne et de créer la représentation d'objet (disons "réelle"). L'inverse serait d'écrire l'objet dans une chaîne.

0
helios

.GetSqlQuery() serait mon choix

0
Xaqron