usernameak
я говнокодер
Anonymous
а что есть адекватное?
Anonymous
я говнокодер
приму в команду
usernameak
я говнокодер
https://gist.github.com/usernameak/759ad596eb1542084f8fb4640c8de4f7
Berkus
https://gist.github.com/usernameak/759ad596eb1542084f8fb4640c8de4f7
если это парсер чего-то простого то убей себя
usernameak
если это парсер чего-то простого то убей себя
.section ROUT .use .routines .section REGI register(scope=local;size=ptr) l0 .section CODE .routine(end=:endHW) HW .string(reg=.a0) "Hello, World!\0" heapallocarr l0 .a0 nativecall 1 l0 return .label :endHW call HW
usernameak
подобного кода
Berkus
возьми нормальный lexer и parser и сделай простой recursive descent parser
usernameak
в C есть что то вроде trim?
usernameak
ладно, будем считать что да
Berkus
🦥Alex Fails
в C есть что то вроде trim?
strpbrk(str, " \t\n");
Berkus
а что есть адекватное?
https://botan.randombit.net/doxygen/classBotan_1_1SHA__256.html как вариант
Berkus
да можно руками написать, там несложные пермутации
🦥Alex Fails
/cppref next_permutation
FailsBot
http://en.cppreference.com/w/cpp/algorithm/next_permutation
usernameak
https://gist.github.com/usernameak/759ad596eb1542084f8fb4640c8de4f7
фэйлс, по какой части тела я получу за такой код
Anonymous
https://gist.github.com/usernameak/759ad596eb1542084f8fb4640c8de4f7
осталось выпилить всё выравнивание и свернуть в одну строку
Anonymous
и будет ещё один квест 'пойми, как оно работает'
Berkus
openssl вообще охуенная либа /* SSL_set_ecdh_auto returns one. */ #define SSL_set_ecdh_auto(ssl, onoff) 1 такого там можно насмотреться
Nik
а что, на чистой сишке можно писать по другому?
Stanislav
функция из стд либы (капитан мод)
Stanislav
man 3 getline
Anonymous
я скачал билд clang'a, вот для парсинга AST нужен clang-c/Index.h. Какие либы нужно слинковать чтобы все было ОК? И есть ли какой-нибудь FindLibClang для CMake?
Anonymous
Вот какие в билде лежат. Одного libclang.lib будет достаточно или нет?
Anonymous
ммм, вуду-программирование ^^
Anonymous
ну ок, попробую
Anonymous
просто планирую написать генератор биндингов embind для emscripten
Anonymous
от идеи компилировать шланг своими силами я отказался... Время жалко
Anonymous
cmake . отработает нормально? Или надо что-то ручками ещё поставить?
Anonymous
меня так-то интересует меньшая часть шланга, чисто чтобы траверсить AST кода
Anonymous
btw, что-нибудь слышно по поводу кастомных атрибутов в С++?
Berkus
Berkus
с дефолтными опциями по идее нормально должен собраться, хотя всякие питоны там можно повыключать
Anonymous
разве я не могу средствами студии через тот же msbuild (или как его там?) собрать?
Anonymous
это да, понятно
Anonymous
хм, ладно
Anonymous
попробую
Anonymous
все же свежак должен быть получше имхо
Anonymous
гитхабовский от svn'ого чем-то отличается?
Berkus
тем что быстрее на несколько порядков
Berkus
раз в 500 примерно
Berkus
+
Anonymous
ок, клонирую
Berkus
ок, клонирую
у меня есть билдскрипт со всеми свистоперделками если что там можно подсмотреть https://github.com/metta-systems/metta/blob/develop/build_toolchain.sh
Anonymous
о, ништяк
Anonymous
thanks
Giperion
@nuke_bird Зачем тебе clang? чё пилишь?
Giperion
ясно ясно
Anonymous
Так, а как там дела с python 3? Я хотел питоном поиграться, через pip скачал кланг. Меня послали куда подальше, мол "нужен python 2"
Anonymous
и как там обстановка с багами у питонового биндинга? Читал старые issue, там раньше названия узлов передавались как "None", а в цпп версии все было ОК
Anonymous
переставил через pip3, все равно: Traceback (most recent call last): File ".\p.py", line 2, in <module> import clang.cindex File "C:\Users\nuke_bird\AppData\Local\Programs\Python\Python36-32\lib\site-packages\clang\__init__.py", line 29, in <module> raise Exception("Only Python 2 is supported.") Exception: Only Python 2 is supported.
Крылатый
Ну так написано же — только второй питон.
Крылатый
Перепишщи биндинг на третий питон и попробуй отослать им пулл реквест.
Pavel
#spam
Berkus
/ban
Alexey
Привет.
Alexey
У меня вопрос.
Alexey
Если кто знает и подскажет, буду очень благодарен.
Alexey
std::cout << is_void<void>::value << '\n';
Alexey
Вот тут вот ::value это что такое.
Alexey
template<typename T> void good(std::vector<T> x, typename identity<T>::type value = 1);
Alexey
И вот тут ::type
Alexey
Вот.
Alexey
Весь референс излазил, но что это за штуки, найти так и не смог.
Alexey
:(