Что является противоположностью «разбору»?[закрыто]

StackOverflow https://stackoverflow.com/questions/148857

Вопрос

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

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

Как мне назвать вторую функцию?

Это было полезно?

Решение

Я думаю, вам нужен глагол «сочинить».

Другие советы

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

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

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

Чтобы дополнить существующее название, ComposeQuery выглядит лучше всего.

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

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

  • Нанизывать()
  • ТоSQL()
  • Оказывать()

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

Антоним слова «анализировать» — «синтезировать».

ТоQueryString()

Однозначно Рендер.

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

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

Просто чтобы добавить кое-что.

Конечно, анализ — это двустороннее слово.

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

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

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

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

генерировать запрос, возможно?создать запрос?

Выбирайте

  • Генерировать
  • Свалка
  • Сериализация
  • Испускают

Каждый из них имеет немного разный смысл.

Может быть довольноPrintQuery?

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

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

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

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

разобрать()?Шучу, я бы выбрал toQueryString()

сгладить?

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

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

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

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

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

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

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

я бы использовал рендер

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

+1 за «Сгенерировать», но обратите внимание на то, что вы генерируете, т. е.ГенерироватьSQL()

Я проголосовал за «составить», но если вам это не нравится, я бы также предложил «создать».

А как насчет asSQL() или, тем более, asQuery()?

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

Обычно я использую «анализ» в качестве метода преобразования и поэтому не могу найти слово, противоположное слову «конвертировать».(вы не можете что-то «деконвертировать», поскольку «деконвертировать» — это сам тип преобразования).

Если рассуждать таким образом, лучшее решение (для меня) — это иметь два метода «анализа», которые получают разные аргументы.Пример (Java):

public class FooBarParser{

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

исчезать

Deparse - это анализ, как:

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

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

«Составить» означает изменение структуры, поэтому это не совсем правильно.Предлагает объединить из отдельных самостоятельных частей (обычно впервые).Точно так же, как «разложить» предполагает расщепление на самостоятельные части.Они меняют форму, а не только формат.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top