Я работаю над действительно простым интерпретатором для действительно простого языка программирования, и в настоящее время я пытаюсь вывести раздел кода для интерпретации, если условие будет выполнено. В настоящее время этот код, чтобы оценить между ключевыми словами compare
и endcompare
и что я хотел бы случиться следующее:Как создать таблицы Lua автоматически
- Удалить все после того, как и до
endcompare
из первоначального списка лексем, сохраняяcompare
в этом списке. - Поместите удаленные жетоны в другую таблицу, которая должна быть оценена, если в исходной таблице находится
compare
, это не включаетendcompare
.
В основном:
original = {"a", "b", "c", "compare", "this", "please", "whatever", "endcompare", "d"}
После этой функции "волшебной", производят следующее:
new = {"a", "b", "c", "compare", "d"}
c = {"this", "please", "whatever"}
В этом случае new
будет оцениваться, и когда ключевое слово compare
встречается, оцените c
и вернитесь к new
.
У меня было несколько попыток, до сих пор, и ни один не был успешным, если не считать реверсирования часть таблицы или пропуск любой другой маркер ...
Как бы идти о создании указанной таблицы?
ОК, так что ... что ваш вопрос? –
@ НикольБолас Я понял, что не очень точен в формулировке моего вопроса (и этим я имею в виду, что я этого не сделал) – user1610406
У вас уже есть синтаксический анализатор для вашего «языка»? Он создает для вас таблицы типа 'original'? У вас есть код, который может «оценивать» таблицу «new» и понимать, что делать, когда видит запись 'compare'? (Как догадаться, какая таблица оценивается для 'compare'? –