SelfiAS
@SelfiAS
▬ PYTHON ▬ JUNIOR ▬

JS Лексер как реализовать?

Здравствуйте. Я пишу(для практики) лексер на JS, но столкнулся с проблемой, я не знаю как реализовать парсинг всего кода, а не одного токена.
p.s. Код на всякий случай прилагается.
// То, что мне надо распарсить
var code = "fn main() { \n \
...\n \
end";

// Регулярки
var rules = [
	[/[0-9abcdefABCDEF]+x[0-9abcdefABCDEF]+/, "int"],
	[/[0-9abcdefABCDEF]+/, "int"],
	[/[0-9]+\.[0-9]+/, "int"],
	[/[0-9]+/, "int"],
	[/[ \t\n]/, null],
]

// Функция для генерации токена
function genToken(token, rules) {
	for (i=0; i < rules.length; i++) {
		match = token.match(rules[i][0]);
		console.log(rules[i][0].exec(token));
		if (match != null) { 
			return [
				token.match(match, rules[i][1])
			];
		}
	}
	throw Error("No match found!");
}

// И как это использовать
// console.log(genToken("0x10f"));
  • Вопрос задан
  • 316 просмотров
Пригласить эксперта
Ответы на вопрос 1
ernesto77
@ernesto77
php, rb, py, js, webdev
а как вы пытались? Иначе это не вопрос а задача
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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