Ошибка преобразования формулы с идентификатором в абстрактное синтаксическое дерево при использовании Bison [duplicate]

И вариант ответа Стивена Пенни из coffeescript, так как это результат # 2 google ... даже если кофе - это просто javascript с большим количеством удаленных символов ...;)

baz = "foo"
filter = new RegExp(baz + "d")
"food fight".match(filter)[0] // food

и в моем конкретном случае

robot.name=hubot
filter = new RegExp(robot.name)
if msg.match.input.match(filter)
  console.log "True!"
0
задан thiagoh 16 April 2017 в 20:58
поделиться

1 ответ

Это гибкое действие неверно:

  yylval.id_v = yytext;

yytext указывает на внутренний рабочий буфер. Его содержимое будет меняться каждый раз, когда вызывается сканер. Поэтому, если вы хотите сохранить строку, которая составляет токен, вы должны скопировать строку в свое собственное хранилище, например, используя strdup. (Не забудьте освободить выделенное хранилище, когда закончите с ним.)

1
ответ дан rici 19 August 2018 в 12:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: