Инструкция JMP в Flex / Bison - PullRequest
       29

Инструкция JMP в Flex / Bison

1 голос
/ 26 апреля 2010

Привет всем, Может ли кто-нибудь помочь мне выйти из моей ситуации, я ищу инструктора, который реализует инструктор JMP (Jump), как в Ассемблере. Я узнал, что это может быть функцией goto Flex / Bison, но я понятия не имею, как это сделать. У кого-нибудь есть идея. Я очень благодарен за вашу помощь. Спасибо.

Вот пример того, как это выглядит. с инструктором JMP он идет на лейбл L1.

:L1
IF FLAG AND X"0001"
EVT 23;
ELSE
WAIT 500 ms;
JMP L1;
END IF;

1 Ответ

1 голос
/ 15 июля 2010

Для реализации инструкции перехода необходимо добавить поддержку грамматики для метки

label: ':' NAME { /* code to store the label */ };

и немного грамматики для разбора команды перехода

jmp: JMP NAME { /* code to look-up label and go there */ };

Имейте в виду, отложите проверку всех целей прыжка до конца анализа, иначе вы не сможете прыгнуть вперед.

...