Вопросы по теме '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 просмотров
schedule
26.01.2024
Разбить одно слово на несколько токенов на основе позиции 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