Domanda

Ho una funzione, parseQuery, che analizza una query SQL in una rappresentazione astratta di quella query.

Sto per scrivere una funzione che accetta una rappresentazione astratta di una query e restituisce una stringa di query SQL.

Come dovrei chiamare la seconda funzione?

È stato utile?

Soluzione

Penso che il verbo che vuoi sia 'componi'.

Altri suggerimenti

Il contrario di analisi è serializza

Nella terminologia del compilatore, l'opposto è "unparse". In particolare, l'analisi trasforma un flusso di token in alberi di sintassi astratti, mentre la non analisi trasforma alberi di sintassi astratti in un flusso di token.

Componi? Quando analizzi una query la spezzi nelle sue parti costitutive (token, ecc.), Il contrario comporterebbe la composizione delle parti in una query di stringa.

Per integrare la denominazione esistente, composeQuery sembra migliore.

Ma nel caso generale, l'opposto di parse è ǝsɹɐd

Vorrei usare uno di questi:

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

Penso che " serializzare " è probabilmente la parola che vuoi. Significa produrre una rappresentazione testuale di dati che possono essere esportati (e importati) dal programma.

L'antimo di 'analizza' è 'sintetizza'.

ToQueryString ()

Sicuramente rendering.

Lo chiamerei constructQuery.

genera o emette, possibilmente.

Solo per aggiungere alcune cose.

Sicuramente analizzare è una parola a due vie.

Puoi analizzare un abstract in una query.

Puoi analizzare una query in un abstract.

La domanda dovrebbe essere: come si chiama l'ultima parte del metodo, e poiché in questo caso stai analizzando un abstract per creare una query, lo chiameresti parseAbstract .

Per rispondere alla domanda, l'analisi non ha alcun contrario.

generateQuery, forse? createQuery?

Scegli

  • Genera
  • Dump
  • Serialize
  • Emit

Ognuno di essi ha connotazioni leggermente diverse.

componi, costruisci, genera, rendi, condensa, riduci, toSQL, toString a seconda della natura della classe e dei relativi operatori

Un compilatore tradizionale ha due parti: un parser e un generatore di codice.

Quindi puoi chiamarlo " Genera " ;. Certo, qui è un po 'diverso perché il compilatore non sta scrivendo il codice sorgente. (a meno che non sia un precompilatore).

Possibilmente Format (). o ToSQL () nella tua istanza?

deanalisi ()? Sto solo scherzando, andrei con toQueryString ()

appiattirsi?

L'oggetto query analizzato forse rappresenta una gerarchia di condizioni, che stai "appiattendo" di nuovo in una stringa di 1 dimensione.

Ma dato che stai passando da oggetto a stringa, usa semplicemente toString o toSQL () o qualcosa del genere. Inoltre, se l'hai progettata bene e stai utilizzando l'app giusta, puoi rinominarla in un secondo momento e semplicemente inserire elementi nei commenti su ciò che fa.

Direi serializzare e deserializzare, invece di analizzare e ...

Vorrei scegliere ToString (), poiché di solito è possibile nidificarli a catena (funzioni opposte, che consentono di passare da Class1 a Class2 e viceversa)

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

Serialize () sembra una buona scelta, ma ha già un contrario in Deserialize ().

Nel tuo scenario specifico, come altri hanno sottolineato, ToSql () è un'altra buona scelta.

Userei render

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

Che è IMHO, l'opposto di parse ()

> c = parse(b)

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

+1 per Genera, ma controlla ciò che stai generando, ovvero GenerateSQL ()

Ho votato per "comporre" ma se non ti piace suggerirei anche "build"

Che dire di asSQL () o ancora di più asQuery ()?

INHO Serializza, sintetizza sono buone opzioni. Inoltre, come hai chiamato parseQuery, andrò con codeQuery

Di solito utilizzo " parse " come metodo di conversione e, pertanto, non riesco a trovare una parola opposta per "convertire". (non puoi "deconvertire" qualcosa, in quanto "non convertito" è un tipo di conversione).

pensando in questo modo, la soluzione migliore (per me) è avere due "analisi" metodi che ricevono argomenti diversi. Esempio (Java):

public class FooBarParser{

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

Deparse

Deparse deve analizzare, come:

  • decompilare è compilare
  • decomporre è comporre
  • deserializzare è serializzare
  • degroovy è groovy :);)

L'analisi / deparsing non è un cambio di struttura, ma una conversione. Conversione precisa tra testo equivalente e formati dell'albero di sintassi astratto, mantenendo tutte le relazioni e amp; struttura.

" Compose " significa cambiamento di struttura, quindi non è del tutto giusto. Suggerisce la combinazione da parti indipendenti separate (di solito per la prima volta). Proprio come "scomponi" suggerisce di suddividere in parti indipendenti. Cambiano forma, non solo formato.

Una rapida ricerca mostra il termine utilizzato in:

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top