Интернет магазин китайских планшетных компьютеров |
|
Компьютеры - Лексема (информатика) - Пример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 ); Просмотров: 7396
|