Интернет магазин китайских планшетных компьютеров



Компьютеры - Лексема (информатика) - Пример

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  );


Просмотров: 7267


<<< Зарезервированное слово
Сравнение языков программирования >>>