Что противоположно "разбору"? [закрытый]



У меня есть функция parseQuery, которая анализирует SQL-запрос в абстрактное представление этого запроса.



Я собираюсь написать функцию, которая принимает абстрактное представление запроса и возвращает строку SQL-запроса.



Что я должен вызвать вторую функцию?

710   30  

30 ответов:

Я думаю, что глагол, который вы хотите, это "сочинять".

напротив parse и сериализовать

в терминологии компилятора противоположное- "unparse". В частности, синтаксический анализ превращает поток токенов в абстрактные синтаксические деревья, в то время как unparsing превращает абстрактные синтаксические деревья в поток токенов.

написать? При анализе запроса вы разбить его на составные части (маркеры и т. д.), обратное будет составлять части в строковый запрос.

в дополнение к существующему именованию, composeQuery выглядит лучше.

но в общем случае, противоположность разбор ǝsɹɐd

Я бы использовал один из них:

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

Я думаю, что "сериализация", вероятно, слово, которое вы хотите. Это означает создание текстового представления данных, которые могут быть экспортированы (и импортированы) из программы.

антоним 'анализировать' это 'синтезировать'.

ToQueryString()

Определенно Представить.

Я бы назвал это constructQuery.

генерировать или испускать, возможно.

просто добавить некоторые вещи.

конечно, разобрать это слово.

вы можете разобрать текст на запрос.

вы можете проанализировать запрос в абстрактный.

вопрос должен быть, как вы называете последнюю часть метода, и потому что в этом случае вы анализируете абстрактный запрос, который вы бы назвали parseAbstract.

чтобы ответить на вопрос, разбор не имеет противоположности.

generateQuery, возможно? createQuery?

выбирай

  • создать
  • свалка
  • сериализовать
  • выделяет

каждый из них имеет несколько различные коннотации.

может быть prettyPrintQuery?

создать, построить, создать, изобразить,уплотнить, сократить, toSQL, метод toString в зависимости от характера класса и связанных с операторами

традиционный компилятор состоит из двух частей: анализатор и генератор кода.

Так что вы можете назвать его"генерировать". Конечно, здесь все немного по-другому, потому что компилятор не пишет исходный код. (если это не прекомпилятор).

Возможно, Формат(). или ToSQL () в вашем случае?

unParse ()? Просто шучу, я бы пошел с toQueryString ()

плющить?

анализируемый объект запроса, возможно, представляет иерархию условий, которую вы "сглаживаете" обратно в 1-мерную строку.

но учитывая, что вы переходите от объекта к строке, на самом деле просто используйте toString или toSQL() или что-то в этом роде. Кроме того, если вы хорошо спроектировали его и используете правильное приложение, вы можете переименовать его позже и просто вставить материал в комментарии о том, что он делает.

+1 для Generate, но Тэкс на то, что вы генерируете, т. е. GenerateSQL ()

Я бы сказал сериализовать и десериализовать, а не разбирать и...

Я бы пошел на ToString (), так как вы обычно можете цепно вложить их (противоположные функции, которые позволяют вам переходить от Class1 к Class2 и наоборот)

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

Serialize () выглядит как хороший выбор, но у него уже есть противоположность в Deserialize ().

в вашем конкретном сценарии, как указывали другие, ToSql () - еще один хороший выбор.

Я бы использовал 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>

который является ИМХО, противоположным parse ()

> c = parse(b)

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

Я голосовал за "compose", но если вам это не нравится, я бы также предложил "build"

Как насчет asSQL () или даже больше asQuery ()?

Инхо сериализует, синтезирует хорошие варианты. Кроме того, как вы назвали parseQuery, я пойду с codeQuery

Я обычно использую " parse "в качестве метода преобразования, и поэтому я не могу найти противоположное слово для"convert". (вы не можете "деконвертировать" что-то, так как "неконвертировать" - это сам тип преобразования).

думая таким образом, лучшим решением (для меня) является наличие двух методов "разбора", которые получают разные аргументы. Пример (Ява):

public class FooBarParser{

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

deparse

Deparse-это разбор, как:

  • декомпиляция-компиляция
  • разложить-это составить
  • десериализация-это сериализация
  • degroovy-это заводной :);)

разбор / удаление - это не изменение структуры, а преобразование. Точное преобразование между эквивалентными текстовыми и абстрактно-синтаксическими форматами дерева, сохраняя все отношения и структуру.

"Compose" означает изменение структуры, так что не совсем правильно. Он предполагает объединение из отдельных независимых частей (обычно в первый раз). Как "разложить" предполагает разделение на независимые части. Они меняют форму, а не только формат.

быстрый поиск шоу термин используется в пределах:

Comments

    Ничего не найдено.