TGStat
TGStat
Qidiruv uchun matnni kiriting
Ilg‘or kanal qidiruvi
  • flag Uzbek
    Sayt tili
    flag Russian flag English flag Uzbek
  • Saytga kirish
  • Katalog
    Kanal va guruhlar katalogi Hududiy to‘plamlar Tematik to‘plamlar Платные каналы Kanallar qidiruvi
    Kanal/guruh qo‘shish
  • Reytinglar
    Kanallar reytingi Guruhlar reytingi Postlar reytingi
    Brendlar va shaxslar reytingi
  • Analitika
  • Postlarda qidiruv
  • Telegram'ni kuzatish
  • Targ‘ibot
    Yandex Business orqali reklama TGStat Agency orqali kanallarda reklama TGStat.ru saytida reklama
A state of .NET

28 Sep, 17:29

Telegram'da ochish Ulashish Shikoyat qilish

Как я перенёс сборку лексера в compile-time

#dotnet #roslyn #sourcegenerators

✅
Один source generator может передать результат другому через post-initialization output — эта фаза добавляет исходники в компиляцию до запуска обычных генераторов, поэтому [GeneratedRegex] видит сгенерированную константу.

📈
Описываешь токен один раз, регулярка собирается сама — без ручного копирования строки между файлами и теста на «забыл скопировать».

⚙️ Порядок альтернатив в регулярке — это правило языка: FloatLiteral с приоритетом 2 должен идти раньше IntegerLiteral с приоритетом 3, иначе `12.5` распадётся на `12` и точку. Отдельного maximal munch нет.

🐛 Генератор падал с CS8032 при `dotnet build /p:UseSharedCompilation=false` (так собирает BenchmarkDotNet). Лечится заменой ProjectReference с OutputItemType="Analyzer" на подключение исходников через Compile — но тогда определения токенов обязаны собираться и под netstandard2.0.

Читаем:
В статье — разбор, как через static abstract member интерфейса отдать регулярку из Infrastructure в Domain без разворота зависимостей слоёв, плюс бенчмарки Compiled vs Generated и трассировка лексера через флаг --dump.

https://habr.com/ru/articles/1087280/

@aStateOfNet

82 0 0
Katalog
Kanal va guruhlar katalogi Kanallar to‘plamlari Kanallar qidiruvi Kanal/guruh qo‘shish
Reytinglar
Telegram-kanallar reytingi Telegram-guruhlar reytingi Postlar reytingi Brendlar va shaxslar reytingi
API
Statistika API'si Postlar qidiruvi API'si API Callback
Kanallarimiz
@TGStat @TGStat_Chat @telepulse @TGStatAPI
O‘qish
Академия TGStat Telegram tadqiqoti 2019 Telegram tadqiqoti 2021 Telegram tadqiqoti 2023
Kontaktlar
Справочный центр Qo‘llab-quvvatlash Email Vakansiyalar
Har xil narsalar
Foydalanuvchi shartnomasi Maxfiylik siyosati Ommaviy oferta
Botlarimiz
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot