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

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

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

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

+144
29 сент. '08 в 14:18
источник поделиться
33 ответа
  • 1
  • 2

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

+186
29 сент. '08 в 14:19
источник

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

+64
02 окт. '08 в 15:44
источник

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

+31
29 сент. '08 в 14:21
источник

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

+29
27 дек. '08 в 8:18
источник

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

  • ToString()
  • ToSQL()
  • Render()
+20
29 сент. '08 в 14:28
источник

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

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

+19
08 мар. '12 в 22:01
источник

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

+15
29 сент. '08 в 14:25
источник

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

+15
29 сент. '08 в 14:20
источник

ToQueryString()

+13
29 сент. '08 в 14:19
источник

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

+12
15 окт. '08 в 14:18
источник

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

+10
29 сент. '08 в 14:19
источник

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

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

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

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

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

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

+10
29 сент. '08 в 15:56
источник

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

+10
29 сент. '08 в 14:19
источник

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

+9
29 сент. '08 в 14:19
источник

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

+8
29 сент. '08 в 16:21
источник

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

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

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

+7
14 мар. '12 в 20:43
источник

Возможно prettyPrintQuery?

+7
29 сент. '08 в 14:19
источник

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

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

+6
29 сент. '08 в 17:17
источник

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

+5
29 сент. '08 в 14:19
источник

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

+5
29 сент. '08 в 14:20
источник

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

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

public class FooBarParser{

    public Foo parse(Bar bar);
    public Bar parse(Foo foo); 
}
+4
12 апр. '14 в 2:33
источник

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

+4
29 сент. '08 в 19:29
источник

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

+4
29 сент. '08 в 18:06
источник

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

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

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

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

+4
20 окт. '09 в 19:02
источник

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

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

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

+4
29 сент. '08 в 15:00
источник

Я бы использовал 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'
    }
}
+4
11 мар. '12 в 15:57
источник

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

+3
27 мая '11 в 15:20
источник

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

+3
29 сент. '08 в 19:22
источник

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

+3
10 мая '12 в 4:44
источник

deparse

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

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

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

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

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

+2
01 нояб. '13 в 0:28
источник
  • 1
  • 2

Посмотрите другие вопросы по меткам или Задайте вопрос