Вопросы по теме 'lexer'

Не удалось скомпилировать вывод lex
Когда я пытаюсь скомпилировать вывод этой тривиальной программы lex: # lex.l integer printf("found keyword INT"); с использованием: $ gcc lex.yy.c Я получил: Undefined symbols: "_yywrap", referenced from: _yylex in...
6723 просмотров
schedule 10.12.2022

самый эффективный способ парсить этот скриптовый язык
Я реализую интерпретатор для давно устаревшего языка сценариев текстового редактора, и у меня возникли проблемы с правильной работой лексера. Вот пример проблемной части языка: T L /LOCATE ME/ C /LOCATE ME/CHANGED ME/ * * C ;CHANGED ME;CHANGED...
555 просмотров
schedule 13.01.2024

Представлять символ в лексере
Я пишу лексер на OCaml для небольшого языка, у меня есть часть его грамматики следующим образом: tab-character = %x0009 eom-character = %x0019 space-character = %x0020 underscore = %x005F single-quote = %x0027 ; ' Я пытаюсь записать let...
503 просмотров
schedule 06.11.2022

лексер пропускает токен
Я пытаюсь выполнить базовое сканирование на основе ANTLR. У меня проблема с лексером, который не соответствует разыскиваемым токенам. lexer grammar DefaultLexer; ALPHANUM : (LETTER | DIGIT)+; ACRONYM : LETTER '.' (LETTER '.')+; HOST...
197 просмотров
schedule 04.11.2023

Разбор структуры C с помощью ANTLR
Возможен ли разбор структуры C с помощью ANTLR? если да, существует ли какой-либо существующий файл инструмента/грамматики? код будет таким: typedef struct C { int i; float f; }
647 просмотров
schedule 28.01.2024

Расширение оператора выбора токена
У меня есть выражения в ANTLR3 num_addition : num_multi ((plus^|minus^) num_multi)* ; Я хочу изменить токены «плюс» и «минус» на другой токен. Поэтому я попытался создать это правило перезаписи. num_addition : num_multi (plus...
40 просмотров
schedule 23.04.2024

Не удается заставить грамматику ANTLR4 пропускать комментарии
Я пытаюсь написать грамматику ANTLR4 для анализа actionscript3. Я решил начать с чего-нибудь довольно грубого: grammar actionscriptGrammar; OBRACE:'{'; CBRACE:'}'; STRING_DELIM:'"'; BLOCK_COMMENT : '/*' .*? '*/' -> skip; EOL_COMMENT : '//'...
6836 просмотров
schedule 17.03.2024

Как использовать Clang в качестве препроцессора
Я пишу диссертацию, и мне нужно проанализировать и разложить исходный код на отдельные функции. Для каждой функции я хотел бы извлечь имена типов, называемые именами функций и приведениями типов. Подходит ли лязг для такой работы? Если да, то как я...
4535 просмотров
schedule 02.12.2023

смежность как оператор - может ли с этим справиться любой лексер?
Скажем, язык определяет смежность двух математических буквенно-цифровых символов Unicode как оператор. Скажем, ????????+1 означает ???? %adj ???? + 1, где %adj обозначает любое определение смежности оператора, в данном случае умножение. Мне...
143 просмотров

Разбить одно слово на несколько токенов на основе позиции ANTLR4
Я пишу синтаксический анализатор для RPG 2. RPG 2 основана на позициях, и для этого я использую предикаты. Однако есть одно место, где я застрял. Одно утверждение в RPG похоже на 26 C N20 'PICK' CHAINORDOFIL 09...
224 просмотров
schedule 07.10.2022

Лексер Antlr 4 с несколькими режимами не может правильно токенизировать
Я пытаюсь создать лексер с несколькими режимами, используя Antlr 4.7. Мой лексер в настоящее время: ACTIONONLY : 'AO'; BELIEFS : ':Initial Beliefs:' -> mode(INITIAL_BELIEFS); NAME : ':name:'; WORD:...
380 просмотров
schedule 25.09.2022

Алекс требует, чтобы тип токена результата был некоторой функцией, которая принимает AlexPosn.
Я пытаюсь написать лексер, который лексирует комментарии в стиле c и ничего больше (пока). { module Lexer where import Prelude hiding (head, take, tail) import Data.ByteString.Lazy } %wrapper "monad-bytestring" @not_bc_end = ~\* | \* ~\/ tl...
47 просмотров
schedule 31.10.2022

Написание лексера для контекстно-зависимого языка разметки, имеющего рекурсивные структуры, такие как вложенные списки.
Я работаю над транспилятором reStructuredText в Rust, и мне нужен совет относительно того, как следует структурировать лексирование в языках с рекурсивными структурами. Например, списки внутри списков возможны в rST: * This is a list item *...
197 просмотров
schedule 14.10.2022