- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
void testToken(const char *value, size_t tokenExpected)
{
antlr4::ANTLRInputStream input(value);
typescript::TypeScriptLexerANTLR lexer(&input);
auto tokens = lexer.getAllTokens();
printTokens(lexer, tokens);
auto token = tokens.front().get();
std::ostringstream stringStream;
stringStream << "Expecting: [" << lexer.getTokenNames()[tokenExpected] << "] \"" << value << "\" but get: [" << lexer.getTokenNames()[token->getType()] << "] \"" << token->getText() << "\".";
auto msg = stringStream.str();
ASSERT_EQUAL_MSG(token->getType(), tokenExpected, msg);
ASSERT_THROW_MSG(token->getText().compare(value) == 0, msg);
}
void testOctalIntegerLiteral()
{
testToken("01", l::OctalIntegerLiteral);
}
Мой расказ о том как жизни было нехрен делать и я начал писать копилятор для TypeScript. как это "пинание х..я" кончиться я не знаю. но вот начал с простого. собрал минимум для разработки это LLVM и ANTLR4. И уже написал свой первый (ну не совсем) lexer.
вот тут можно посмотреть на убогость говнокода.
https://github.com/ASDAlexander77/TypeScriptCompiler
guest6 20.01.2021 13:55 # 0
bootcamp_dropout 20.01.2021 13:59 # 0
ASD_77 20.01.2021 14:46 # 0
guest6 20.01.2021 15:22 # 0
Хуясе ты крут. Ты нидлес же?
ASD_77 20.01.2021 17:06 # 0
guest6 20.01.2021 17:17 # 0
Rooster 05.02.2021 11:34 # 0
К чему я это всё написал? А к тому, что Георгий Татьяновна сидит глупым лицом напротив и льёт кипяток мимо кружки.
guest6 05.02.2021 11:35 # 0
Rooster 05.02.2021 11:37 # 0
guest6 05.02.2021 11:40 # 0
Rooster 05.02.2021 11:48 # 0
Rooster 05.02.2021 11:48 # 0
guest6 05.02.2021 11:48 # 0
Rooster 05.02.2021 12:00 # 0
3oJIoTou_xyu 05.02.2021 12:40 # 0
Desktop 05.02.2021 12:43 # 0
3oJIoTou_xyu 05.02.2021 12:46 # 0
Desktop 05.02.2021 12:51 # 0
bootcamp_dropout 05.02.2021 12:54 # 0
Desktop 05.02.2021 12:56 # 0
3oJIoTou_xyu 05.02.2021 12:57 # 0
На самом деле обидно за него. Потому что оно раньше выпускало годные вкусные настойки и уссурик сам был не плох. А сейчас выкупила ебалуга (белуга) и вместе пиздатых настоек стали делать рыгатню под названием доктор хуявгуст (август) и сами уссурики стали как дешанская рыготня налитая за пазухой из под полы не мытой бабки, которая еще нассала и плюнула.
Desktop 05.02.2021 13:00 # 0
MAPTbIwKA 05.02.2021 14:42 # 0
а "ляпапам" делаешь?
Rooster 05.02.2021 15:09 # 0
Ляпапам, ляпапам!
Я искала, я искала
Феназепам, феназепам!
MAPTbIwKA 05.02.2021 15:12 # 0
CBuHOKYP 06.02.2021 22:06 # 0
j123123 20.01.2021 16:56 # 0
guest6 20.01.2021 16:58 # 0
j123123 20.01.2021 16:58 # 0
guest6 20.01.2021 17:01 # 0
j123123 20.01.2021 17:03 # 0
Суть этого тупескрипта ведь в том, что он хорошо совместим с JS, легко в него транслируется, нахуй его куда-то тащить еще?
guest6 20.01.2021 17:04 # 0
Я могу представить себе например написание логики на TS с последущей ее космпиляцией под браузер и ios (llvm). Ну, чтоб два раза не писать одно и тоже.
Алсо, знатаков TS всё же больше среди офисных программистов, чем знатаков хаскеля
> нахуй его куда-то тащить еще?
ну а нахуй писать одно и тоже три раза под разные платформы?
j123123 20.01.2021 17:21 # 0
А почему б в ios не запускать это через браузер? Компилировать может быть смысл только если какое-то ресурсоемкое говно на этом TS писать, но разве кто-то так делает?
> ну а нахуй писать одно и тоже три раза под разные платформы?
Для TS ты и так не должен писать одно и то же под разные платформы, ведь он компилируется в JS, а интерпретатор JS есть много где. Если же у тебя какая-то непонятная эмбеддед-микроконтроллерная хуитень, то тебе этот TS вряд ли подойдет т.к. это хуйня с GC. (Хотя вот какие-то ебланы юзают зачем-то тот же микропитон, и даже Iskra JS есть с жопаскриптом)
guest6 20.01.2021 17:23 # 0
Потому что тогда у тебя не будет доступа к полному API системы, не?
>микроконтроллерная
нет, TS точно не для этого:))
>микропитон
так это для школьников вроде, чтобы учить программированию железок, не?
Desktop 20.01.2021 17:26 # 0
- заебали своё говно тащить всюду
guest6 20.01.2021 17:28 # 0
Кстати, я так и не знаю, как это правильно решать без всяких реактнейтив и самаринов
Ну вот как мне логику пошарить между вебмордой, бекендом, ios и android?
guest6 20.01.2021 17:32 # 0
Пускай был бы один си и один выскоуровневый для автоматизации и бизнес логики. И всё
j123123 20.01.2021 17:32 # 0
Можешь на Си писать, и для говнобраузеров компилировать в WebAssembly. Так ты логику даже на микроконтроллеры пошарить можешь
guest6 20.01.2021 17:35 # 0
для задач типа "выбрать всех петухов с толстым гребешком и отсортировать их по росту, и взять первых двух" хочется высокоуровневый язык использовать, а не чистую сишечку
Desktop 20.01.2021 17:37 # 0
- C++, C#, C
но это достаточно узкий класс приложений, которым нужна такая хня
guest6 20.01.2021 17:38 # 0
Разве не любое приложение в 2021 должно иметь версию под ios и андроид?
Desktop 20.01.2021 17:42 # 0
далеко не всегда обязательно нужно выносить логику в какую-то общую зависимость, можно на каждом клиенте отдельно писать, если её не очень много
guest6 20.01.2021 17:46 # 0
Desktop 20.01.2021 17:48 # 0
ты о чём?
guest6 20.01.2021 17:50 # 0
guest6 20.01.2021 17:50 # 0
Desktop 20.01.2021 17:54 # 0
тормозит, тупит, но зато ты можешь писать на рагуляре под телефоны, да
уровень качества боженька
guest6 20.01.2021 18:03 # 0
guest6 20.01.2021 18:46 # 0
guest6 20.01.2021 17:50 # 0
Приложение использует компоненты UIKit или андроидный гуй
Desktop 20.01.2021 17:47 # 0
проблема в том, что весь ffi и вся интеграция между языками упирается в то же сишное API/ABI и ничего с этим пока не поделаешь
guest6 20.01.2021 17:51 # 0
Desktop 20.01.2021 17:53 # 0
то есть все плюсы условного "раста" при использовании его со свифтом или котлином разобьются о необходимости выражать прослойку между в сишных терминах
тогда уже проще сразу с сишкой и мудохаться
guest6 20.01.2021 17:56 # 0
Если интеропиться с сишкой, то нужно вокруг сишных либ делать красивые высокоуровневые обёрточки
guest6 20.01.2021 18:02 # 0
Мерзотного гэцэ нету, компилируется в нативный код, типизация статическая, при этом имеет все высокоуровневые плюшки типа вывода типов и лямбд-хуямбд
Desktop 20.01.2021 18:05 # 0
но взлетит ли это под то же ведро это большой вопрос, я не в курсе
язык должен изначально под это затачиваться, у свифта другая история немного
guest6 20.01.2021 18:07 # 0
Так что портануть свифта туда будет не очень легко видимо.
Можно конечно компилироваться нативно, мимо арта, но наверное тогда будет тяжело под разные устройства работать
Desktop 20.01.2021 18:13 # 0
а так привязать gc к рефкаунтеру не то чтобы большая проблема, когда-то же был сборщик в обж си на маке
как вариант можно делать свой рантайм или брать чужой с сохранением синтаксиса (пример: https://www.elementscompiler.com/elements/silver/)
ну или генерить из стабов по примеру протобафа, но это не сильно императивно
ASD_77 20.01.2021 17:05 # 0
guest6 20.01.2021 17:07 # 0
ASD_77 20.01.2021 17:11 # 0
ASD_77 20.01.2021 18:51 # 0
j123123 20.01.2021 20:24 # 0
guest6 05.02.2021 14:52 # 0
https://pbs.twimg.com/media/EtcgvD2XAAIsXDo?format=jpg&name=medium