powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Не удаётся найти подходящую библиотеку для парсинга js на C#
25 сообщений из 31, страница 1 из 2
Не удаётся найти подходящую библиотеку для парсинга js на C#
    #39315850
DrillDrive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Текст вопроса и требования к либе я разместил здесь :
ru.stackoverflow.com/questions/567215/c-Бибилиотека-для-парсинга-javascript

Выручайте , кто может , плиз.
...
Рейтинг: 0 / 0
Не удаётся найти подходящую библиотеку для парсинга js на C#
    #39315862
TimeCoder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DrillDrive,

чем Antlr3 не подходит?
...
Рейтинг: 0 / 0
Не удаётся найти подходящую библиотеку для парсинга js на C#
    #39315866
DrillDrive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TimeCoder, Antlr3 используют для создания парсера своего как и компилятора к нему под свою грамматику. Иными словами это стопудово не то. А как её под javascript подогнать, чтобы использовать в visual studio я не знаю. Единственная зацепка , так это тока создать файл с расширением g для представления грамматики Но опять же , в коде C# не фига не понятно как юзать это. Ну нет в доке на гитхабе примера хотя бы простого , например парсинг этого кусочка "alert('Hi. I am parsed :)')".
...
Рейтинг: 0 / 0
Не удаётся найти подходящую библиотеку для парсинга js на C#
    #39315874
TimeCoder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DrillDrive,

для Antlr3 (как и других популярных либ парсинга) есть куча готовых файлов-грамматик, под все основные языки программирования, и JS в том числе. Берете эту грамматику, генерите парсер, добавляете Visitor, скармливаете свой код, получаете AST.
...
Рейтинг: 0 / 0
Не удаётся найти подходящую библиотеку для парсинга js на C#
    #39315880
TimeCoder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DrillDrive,

с версией промазал, 4-й уже antlr, а вот собственно ecma (по версии не скажу, но непонятно, что вам нужно, v8 - это движок, а не спецификация языка): https://github.com/antlr/grammars-v4/tree/master/ecmascript

Примеров полно) но вечер придется посидеть. В Antlr есть утилита, там вставляется код, грамматика, и она показывает результат парсинга (лексемы и пр.). Но опять же, это когда для кастомного языка писать грамматику - тот еще челендж, а для известного все готово. Я на Antlr написал большую IDE, и по скорости хорошо работает.
...
Рейтинг: 0 / 0
Не удаётся найти подходящую библиотеку для парсинга js на C#
    #39315884
DrillDrive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TimeCoder, Круто. Ну тогда ладно. Попробую ещё потужиться с Antlr. Если будут ошибки ,в генерации .g файла или какие-нибудь другие , то я вам ещё напишу , ок ?
...
Рейтинг: 0 / 0
Не удаётся найти подходящую библиотеку для парсинга js на C#
    #39315891
TimeCoder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DrillDrive,

пишите прямо тут, для этого форум и нужен)

Если берете готовый g4 для JS там ошибок нет. Нужно только сгенерить на его основе все, что нужно. И подхватить в C# коде.
...
Рейтинг: 0 / 0
Не удаётся найти подходящую библиотеку для парсинга js на C#
    #39315960
DrillDrive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TimeCoder, Да. Оказвыается есть инструкция на пользовании грамматики а проекте VS. Из неё как раз https://github.com/tunnelvisionlabs/antlr4cs я выполнил всё

Я уже дошёл до этой темы

Configure the compile-time options for a grammar in the project

Дальше я пока не представляю , что делать с файлом грамматики: не получается с ним сделать два пункта:

Using the ANTLR Language Support extension(не могу при открытии свойств файла найти Display Name)

Manually editing the project file(хз где искать XML элемент с сгенерированным свойством MSBuilt , чтобы убедится , что мой файл грамматики .g4 всосался в сборку или нет)

Да и потом как использовать потом этот файл грамматики при написании кода для начала процесса разбора скрипта.

Первые два элемента списка объясните по подробнее как только можете. А то я настолько сильно функционал VS не знвю.
...
Рейтинг: 0 / 0
Не удаётся найти подходящую библиотеку для парсинга js на C#
    #39316082
TimeCoder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DrillDrive,
выкладывайте что есть на GitHub, я сделаю форк, покопаем.
...
Рейтинг: 0 / 0
Не удаётся найти подходящую библиотеку для парсинга js на C#
    #39316299
DrillDrive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TimeCoderвыкладывайте что есть на GitHub

Это обязательно на GitHub ?

Там обычно пользователи не хранят недоработанные проекты.
Может быть договоримся , что я архив с проектом кину на форум , а ?
...
Рейтинг: 0 / 0
Не удаётся найти подходящую библиотеку для парсинга js на C#
    #39316307
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно на bitbucket сделать приватный hg-репозиторий.
...
Рейтинг: 0 / 0
Не удаётся найти подходящую библиотеку для парсинга js на C#
    #39316333
DrillDrive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны, уже сделал.

https://bitbucket.org/slash105/jsastvisitor/downloads

Сча я качаю Git клиент соответствующий. Плохо , что я пока не врубаю , как там создать Source Tree из rar файла. Впервые в жизни это использую
...
Рейтинг: 0 / 0
Не удаётся найти подходящую библиотеку для парсинга js на C#
    #39316339
TimeCoder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DrillDrive,

можно хоть как, просто репозиторий облегчает review, хранит и шарит знания. В каком состоянии выкладывать код на GitHub - это всецело ваше право, это платформа для активной разработки, а не музей. Можно и bitbucket, без разницы.
...
Рейтинг: 0 / 0
Не удаётся найти подходящую библиотеку для парсинга js на C#
    #39316376
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DrillDriveTimeCoder, Да. Оказвыается есть инструкция на пользовании грамматики а проекте VS. Из неё как раз https://github.com/tunnelvisionlabs/antlr4cs я выполнил всё

Я уже дошёл до этой темы

Configure the compile-time options for a grammar in the project

Дальше я пока не представляю , что делать с файлом грамматики: не получается с ним сделать два пункта:

Using the ANTLR Language Support extension(не могу при открытии свойств файла найти Display Name)

Manually editing the project file(хз где искать XML элемент с сгенерированным свойством MSBuilt , чтобы убедится , что мой файл грамматики .g4 всосался в сборку или нет)

Да и потом как использовать потом этот файл грамматики при написании кода для начала процесса разбора скрипта.

Первые два элемента списка объясните по подробнее как только можете. А то я настолько сильно функционал VS не знвю.

Делай по аналогии
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
<ItemGroup>
  <Antlr4 Include="LabeledExpr.g4">
    <Generator>MSBuild:Compile</Generator>
    <CustomToolNamespace>Calc</CustomToolNamespace>
    <Listener>True</Listener>
    <Visitor>True</Visitor>
  </Antlr4>
</ItemGroup>


http://elemarjr.com/en/2016/04/21/learning-antlr4-part-1-quick-overview/
...
Рейтинг: 0 / 0
Не удаётся найти подходящую библиотеку для парсинга js на C#
    #39316485
DrillDrive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TimeCoder, я лучше пошлю проект сюда тогда. Так как Git написан под *nix подобные платформы , а я юзаю windows. Я её качнул , а как запустить на винде, понятия не имею да и у меня нет времени выяснять ).

Вот мой VS проект:
...
Рейтинг: 0 / 0
Не удаётся найти подходящую библиотеку для парсинга js на C#
    #39316493
DrillDrive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Не удаётся найти подходящую библиотеку для парсинга js на C#
    #39316621
DrillDrive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TimeCoder, вы мой проект видели ?

Если нет , то
я на всякий случай даю вам другую ссылку(на проект моего репозитория):

https://slash105@bitbucket.org/slash105/jsastvisitor.git]https://slash105@bitbucket.org/slash105/jsastvisitor.git

Если вы не сможете её скачать , то дайте мне знать и яэтот проект выложу на форум если что.
...
Рейтинг: 0 / 0
Не удаётся найти подходящую библиотеку для парсинга js на C#
    #39316655
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Береш файл
https://github.com/antlr/grammars-v4/blob/master/ecmascript/ECMAScript.CSharpTarget.g4 и добавляешь в корень проекта
В файл проекта дописываешь
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
<ItemGroup>
  <Antlr4 Include="ECMAScript.CSharpTarget.g4">
    <Generator>MSBuild:Compile</Generator>
    <CustomToolNamespace>ECMAScript</CustomToolNamespace>
    <Listener>True</Listener>
    <Visitor>True</Visitor>
  </Antlr4>
</ItemGroup>


предварительно открыв его например в блокноте
Перекомпилируешь и пользуешь парсер
...
Рейтинг: 0 / 0
Не удаётся найти подходящую библиотеку для парсинга js на C#
    #39316773
TimeCoder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DrillDrive,

сделайте репозиторий открытым) чего скрывать-то? Не могу зайти.
...
Рейтинг: 0 / 0
Не удаётся найти подходящую библиотеку для парсинга js на C#
    #39317155
DrillDrive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TimeCoder, всё. Я открыл доступ ))).
...
Рейтинг: 0 / 0
Не удаётся найти подходящую библиотеку для парсинга js на C#
    #39317198
TimeCoder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DrillDrive,
отлично)

FYI: packages, .vs, *.suo, *.user, \bin\, \obj\ - вот это все надо заносить в .gitignore, и не выкладывать в репозиторий.

По Antlr4 выше хорошую ссылку дали, попробуйте хоть что-то для начала сделать. В частности, вот такой у меня скрипт на генерацию:

java -jar "..\..\packages\Antlr4.4.5.3-rc1\tools\antlr4-csharp-4.5.3-SNAPSHOT-complete.jar" -Dlanguage=CSharp_v4_5 -package ItelParser -o Generated itel.g4

где вам надо подставить файл грамматики JS вместо itel, ну и название namespace свое дать. И версия Antlr4 сейчас наверняка поновее есть (не RC). Сам jar-файл можно найти в packages. Еще через Extensions & Updates в VS можно подключить плагин Antlr, он подсвечивает синтаксис при редактировании грамматик. А в составе самого Antlr есть упомянутая в статье утилита, показывающая графически парсинг. Попробуйте ее на примере простого js-кода. Попробуйте выполнить скрипт, чтобы сгенерировались C#-классы. И потом их включите в свой проект, можно будет писать код, как с их помощью парсить.
...
Рейтинг: 0 / 0
Не удаётся найти подходящую библиотеку для парсинга js на C#
    #39317251
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DrillDrive,
Лови
...
Рейтинг: 0 / 0
Не удаётся найти подходящую библиотеку для парсинга js на C#
    #39317261
DrillDrive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВ, простите. Просто я сразу не сообразил. Скажите. А что делать с тегом <CustomToolNamespace></CustomToolNamespace> ? Там в качестве содержимого какой путь к проекту должен стоять ? Точно ECMAScript ? Или какое точно пространство имён ?
...
Рейтинг: 0 / 0
Не удаётся найти подходящую библиотеку для парсинга js на C#
    #39317265
DrillDrive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВ, ааа. Понял. Счас вставлю эту сборку ECMAScript.dll в проект.
...
Рейтинг: 0 / 0
Не удаётся найти подходящую библиотеку для парсинга js на C#
    #39317307
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DrillDrive,
Запусти визитор по аналогии http://elemarjr.com/en/2016/04/21/learning-antlr4-part-1-quick-overview/
...
Рейтинг: 0 / 0
25 сообщений из 31, страница 1 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Не удаётся найти подходящую библиотеку для парсинга js на C#
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]