Question

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?

Était-ce utile?

La solution

Je pense que le verbe que vous voulez, c'est "composer".

Autres conseils

L'opposé de l'analyse est la sérialisation

.

Dans la terminologie du compilateur, le contraire est "unparse". Plus précisément, l’analyse transforme un flux de jetons en arbres de syntaxe abstraite, tandis que non-numériser transforme les arbres de syntaxe abstraite en un flux de jetons.

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

Pour compléter votre dénomination existante, composeQuery est plus esthétique.

Mais dans le cas général, l'inverse de l'analyse est s??d

Je voudrais utiliser l'un de ceux-ci:

  • ToString ()
  • ToSQL ()
  • Render ()

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

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

ToQueryString ()

Rendu définitivement.

Je l'appellerais constructQuery.

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

Juste pour ajouter des choses.

Bien sûr, analyser est 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 appelez-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'appelez parseAbstract .

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

generateQuery, éventuellement? createQuery?

Faites votre choix

  • Générer
  • Décharger
  • Sérialiser
  • émettre

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

Peut-être prettyPrintQuery ?

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

Un compilateur traditionnel comprend 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 parce que le compilateur n'écrit pas de code source. (sauf s’il s’agit d’un précompileur).

Peut-être Format (). ou ToSQL () dans votre instance?

unParse ()? Je plaisante, je voudrais aller avec toQueryString ()

aplatir?

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

Mais étant donné que vous passez d'objet en chaîne, utilisez simplement toString ou toSQL () ou quelque chose comme ça. En outre, si vous l’avez bien conçue et que vous utilisez la bonne application, vous pouvez la renommer plus tard et y coller des éléments dans les commentaires.

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

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

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

Serialize () semble être un bon choix, mais il a déjà un contraire dans Deserialize ().

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

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 IMHO, l'opposé de parse ()

> c = parse(b)

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

+1 pour Generate, mais utilisez ce que vous générez, par exemple, GenerateSQL ()

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

Qu'en est-il d'asSQL () ou même plus asQuery ()?

INHO Sérialiser, synthétiser sont de bonnes options. De plus, comme vous avez nommé parseQuery, je vais utiliser codeQuery

J'utilise généralement " parse " en tant que méthode de conversion et, par conséquent, je ne trouve pas le mot opposé pour "convertir". (vous ne pouvez pas "déconvertir" quelque chose, car "annuler la conversion" est un type de conversion lui-même).

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

public class FooBarParser{

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

deparse

Deparse est à analyser, en tant que:

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

L'analyse / le déparsing n'est pas un changement de structure, mais une conversion. Conversion précise entre les formats de texte équivalent et de syntaxe abstraite, en maintenant toutes les relations & amp; structure.

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

Une recherche rapide indique que le terme est utilisé dans:

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top