В чем противоположность "разбора"?

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

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

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

Ответ 1

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

Ответ 2

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

Ответ 3

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

Ответ 4

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

Ответ 5

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

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

Ответ 6

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

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

Ответ 7

Антоним "анализа" "синтезируется".

Ответ 8

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

Ответ 9

ToQueryString()

Ответ 10

Определенно Render.

Ответ 11

Я бы назвал его конструкцией.

Ответ 12

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

Ответ 13

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

Разумеется, синтаксический анализ является двухсторонним.

Вы можете анализировать реферат в запросе.

Вы можете проанализировать запрос в реферате.

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

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

Ответ 14

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

Ответ 15

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

Ответ 17

Сделайте свой выбор

  • Генерировать
  • Dump
  • Serialize
  • Испустите

У каждого из них несколько разные коннотации.

Ответ 18

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

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

Ответ 19

Возможно, Format(). или ToSQL() в вашем экземпляре?

Ответ 20

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

Ответ 21

выравниваться?

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

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

Ответ 22

+1 для Generate, но придерживайтесь того, что вы генерируете, т.е. GenerateSQL()

Ответ 23

Я бы сказал, сериализуем и десериализуем, вместо синтаксического анализа и...

Ответ 24

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

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

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

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

Ответ 25

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

Что такое IMHO, противоположное parse()

> c = parse(b)

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

Ответ 26

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

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

public class FooBarParser{

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

Ответ 27

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

Ответ 28

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

Ответ 29

INHO Сериализация, синтез - хорошие варианты. Кроме того, поскольку вы назвали parseQuery, я перейду с помощью codeQuery

Ответ 30

deparse

Deparse должен анализировать, как:

  • декомпилировать - компилировать
  • Разложение состоит в создании
  • deserialize - сериализовать
  • degroovy - groovy:);)

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

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

Быстрый поиск показывает термин, используемый внутри: