Интернет магазин китайских планшетных компьютеров |
|
Компьютеры - Лексема (информатика) - Пример24 февраля 2011Оглавление: 1. Лексема (информатика) 2. Пример 3. Лексический анализатор Для примера, исходный код следующей строки программы net_worth_future =; может быть преобразован в следующий поток токенов: ИМЯ "net_worth_future" РАВЕНСТВО ОТКРЫВАЮЩАЯ_СКОБКА ИМЯ "assets" МИНУС ИМЯ "liabilities" ЗАКРЫВАЮЩАЯ_СКОБКА ТОЧКА_С_ЗАПЯТОЙ Пример такого лексического анализатора на языке PHP:
class tokenstream {
// Входной поток
private $input_stream;
// Указатель позиции во входном потоке
public $seek = 0;
// Конструктор
public function __construct {
// Инициализируем входной поток
$this -> input_stream = $input;
}
// Возвращает очередной символ из входного потока
public function readChar {
$char = ? $this -> input_stream : false );
$this -> seek++;
return $char;
}
// Производит токенизацию
public function tokenize {
$output = array ;
while ) !== false ) {
if ) { // Неотображаемые символы
} elseif ) { // Кавычки
$output = 'T_QUOTE';
} elseif {
$output = 'T_...';
}
}
return $output;
}
}
// Исходный код для разбора
$my_source = '
function foo {
$my_var = "foo-bar";
}
';
// Создаем экземпляр класса парсера
$tokenstream = new tokenstream ;
// Парсим исходный код и распечатываем результат
print_r );
Просмотров: 7723
|