powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Не удаётся найти подходящую библиотеку для парсинга js на C#
6 сообщений из 31, страница 2 из 2
Не удаётся найти подходящую библиотеку для парсинга js на C#
    #39317382
DrillDrive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВ,

Я уже давно сделал всё по аналогии , кроме самого визитёра.

Я нашёл интерпретацию грамматики javascript на гитхабе. Вот отсюда содержимое я и стянул:

https://github.com/frankdu/minijs/blob/master/antlr/src/main/resources/org/minijs/parser/antlr/JavaScript.g4

содержимое файла оттуда впихнул в свой отдельный текстовый файл , потом поменял расширение , чтобы использовать его как файл грамматики. Назвал его также(JavaScript.g4)

в файл проекта JsAstVisitor , я задал файл грамматики и пространство имён соответствующее запускаемому в решении проекту

Код: xml
1.
2.
3.
4.
5.
6.
<Antlr4 Include="Javascript.g4">
		<Generator>MSBuild:Compile</Generator>
		<CustomToolNamespace>JsAstVisitor</CustomToolNamespace>
		<Listener>True</Listener>
		<Visitor>True</Visitor>
</Antlr4>



Но в последнем примере. Меня кое-что выбешивает. А именно , что входной файл нужно вводить туда через параметр args в точке старта программы (метод main) , как в следующем примере:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
class Program
    {
        static void Main(string[] args)
        {
            string inputFile = null;
            if (args.Length > 0) inputFile = args[0];
            var istream = System.Console.In;
            if (inputFile != null) istream = File.OpenText(inputFile);
 
            var input = new AntlrInputStream(istream);
            var lexer = new LabeledExprLexer(input);
            var tokens = new CommonTokenStream(lexer);
            var parser = new LabeledExprParser(tokens);
            var tree = parser.prog();
 
            var eval = new EvalVisitor();
            eval.Visit(tree);
        }
    }



, но мне так не удобно. Есть ли другой способ как сгенерировать парсер , а потом уже заставить его обрабатывать файл с js расширением и не через args ?
...
Рейтинг: 0 / 0
Не удаётся найти подходящую библиотеку для парсинга js на C#
    #39317384
DrillDrive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВ, вы пока ответьте , как мне дальше сделать , а я пока попытаюсь вставить строку из InputStream другим образом , не через параметр args.
...
Рейтинг: 0 / 0
Не удаётся найти подходящую библиотеку для парсинга js на C#
    #39317385
DrillDrive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
*ой через StreamReader

Оговорился снова )))
...
Рейтинг: 0 / 0
Не удаётся найти подходящую библиотеку для парсинга js на C#
    #39317387
DrillDrive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё. Я уже разобрался. Дело не в args , а чтение в том примере как я понял происходит с ввода с клавиатуры (AntlrInputStream). Блин. А как сделать чтение с файла , а не с клавы - теперь это следующее препятствие.
...
Рейтинг: 0 / 0
Не удаётся найти подходящую библиотеку для парсинга js на C#
    #39317400
DrillDrive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВ http://elemarjr.com/en/2016/04/21/learning-antlr4-part-1-quick-overview/


Евгений огромное спасибо вам за эту ссылку. У меня всё получилось. Визитёр загрузился сам , какой надо из .g4 файла , который я прописал в xml самого проекта. И уже первое испытание с методом Visit(IParseTree context) сработал переход на следующий элемент. От моего имени ещё передайте "спасибо" парню TimeCoder за его помощь тоже ))). Короче желаю вам обоим крепкого здоровья ;-)
...
Рейтинг: 0 / 0
Не удаётся найти подходящую библиотеку для парсинга js на C#
    #39317614
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DrillDrive Блин. А как сделать чтение с файла , а не с клавы - теперь это следующее препятствие.
Учиться, учиться и еще раз учиться, друг мой, как завещал Великий Ленин!
...
Рейтинг: 0 / 0
6 сообщений из 31, страница 2 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Не удаётся найти подходящую библиотеку для парсинга js на C#
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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