Существует ли препроцессор C, который устраняет #ifdef блоки на основе определенных/неопределенных значений?

Вы можете добавить параметр запроса в ваш экспресс API. т.е.

app.get('/test', (req, res) => {
    ...
    let search = req.query.search;
    fetch("https://api-v3.igdb.com/games", {
       ...
       body: 'fields name; search "' + search + '"; where version_parent = null;'
     })
     ...
});

А затем во втором сценарии JS;

test.addEventListener('click',() => {
    let search = document.getElementById("search-term").value;
    fetch("http://localhost:3000/test?search=" + search, ...})
    ...
});

При условии, что у вас есть вход в HTML-файл;

36
задан 李哲源 10 September 2018 в 18:52
поделиться

4 ответа

Я абсолютно ничего не знаю о C, но он кажется на поиск чего-то как unifdef . Обратите внимание, что это не было обновлено с 2000, но существует преемник, позвонивший "Сын unifdef" (sunifdef) .

26
ответ дан 27 November 2019 в 06:12
поделиться

Я использовал несколько unifdef годы назад для просто вида проблемы, которую Вы описываете, и это хорошо работало. Даже если это не было обновлено с 2000, синтаксис препроцессора ifdefs не изменился существенно с тех пор, таким образом, я ожидаю, что это все еще сделает то, что Вы хотите. Я предполагаю, что могли бы быть некоторые проблемы компиляции, хотя пакеты кажутся недавними.

я никогда не использовал sunifdef, таким образом, я не могу прокомментировать его непосредственно.

4
ответ дан 27 November 2019 в 06:12
поделиться

Приблизительно в 2004 я записал инструмент, который сделал точно, что Вы ищете. Я никогда не находил время для распределения инструмента, но код может быть найден здесь:

http://casey.dnsalias.org/exifdef-0.2.zip (это - ссылка dsl)

Это о 1.7k строки и реализует достаточно грамматики C для парсинга операторов препроцессора, комментариев и строк с помощью бизона и гибкого провода.

3
ответ дан 27 November 2019 в 06:12
поделиться

При необходимости в чем-то подобном препроцессору гибкое решение Волна (от повышения). Это - библиотека, разработанная для создания C-preprocessor-like инструментов (включая такие вещи как C++ 03 и C++ 0x препроцессоры). Поскольку это - библиотека, можно сцепиться в ее входной и выходной код.

2
ответ дан 27 November 2019 в 06:12
поделиться