function Automaton(substr) {
this.delta = [{"a":0, "b":1}, {"a":1, "b":0}];
this.state = 0;
this.search = function(str) {
this.state = 0;
for (var i = 0; i < str.length; i++) {
this.state = this.delta[this.state][str.charAt(i)];
WSH.Echo(this.state);
}
}
}
var a = new Automaton("...");
a.search("ababbbba");
Antlr 3
Переходим на antlr 3, т.к. он более удобен для реализации первого компилятора.
Итак, crash-course по antlr 3.
Простейший транслятор
Зададимся целью транслировать арифметические выражения в их аналоги, например, на языке lisp (scheme). Рассмотрим упрощенный случай, когда грамматикой допускаются только суммы чисел.
Калькуляторы
На этой паре рассматриваются два варианта написания собственного калькулятора средствами antlr4.
Введение
План на семестр, Литература
- ANTLR v.4 (http://www.antlr.org/)
- ANTLRWorks v.2 (http://tunnelvisionlabs.com/products/antlrworks)
- Terence Parr "The Definitive ANTLR 4 Reference"
Email рассылка: https://groups.google.com/forum/#!forum/usu_cc
Требования
- В конце каждого занятия формулируется домашнее задание.
- Сдавшие задание к следующему занятию получают 5 баллов, через одно - 4 балла,
- через 2 - 3 и так далее.
- Получившие 80% - 100% от максимального возможного балла получают отлично, 60% - 79% - хорошо, 40% - 59% - удовлетворительно или зачтено.