|
Программирование >> Формирование пользовательского контейнера
} while(parencount > 0); fout ) ; Транслирует оператор typeof. void typeof0 { string token; string tercp; fout typeldC; skipspaces(); gettoken(token); do { t&pp = token; if(Igettoken(token)) throw SyntaxExc( Unexpected EOF encountered. ); if(token != same ) fout temp; } while(token != same ); skipspaces(); gettoken(token); if(token != as ) throw SyntaxExc( as expected. ); fout ) == typeid( ; skipspaces(); do { if(!gettoken(token)) throw SyntaxExc( Unexpected EOF encountered. ); fout token; } while(token != ) ); fout ) ; ргширение С++ Уб7 id skipspacesO { char ch; do { ch = fin.getO ; ) vAiile(isspace(ch)); fin.putback(ch); Применение транслятора Для использования транслятора сначала создайте файл, содержащий про-1рамму, в которой встречаются экспериментальные ключевые слова. Для ясности файлам, включающим экспериментальные конструкции, присваивайте расширение ехр. Понятно, что большая часть кода в файле с расширением ехр будет написана на стандартном языке С++. Но в нем обязательно должно быть одно или несколько расширений, которые будут преобразованы транслятором в стандарт С++. В листинге 4.2 приведено содержимое ехр-файла, в котором используется цикл foreach. Обратите внимание на то, что большая часть профаммы - это обычный код на языке С++. Листинг 4.2. Демонстрация применения цикла foreach #include <iostreain> using namespace std; int main О { int nums[] = { 1, 6. 19. 4. -10, 88 }; int min; Находит минимальное значение, roin = nums[0] ; foreach(int x in nums) if(min > X) min = x; cout Minimum is min endl; return 0; Листинг 4.3. Код, содержащийся в файле foreach.cpp Оттранслирован из исходного файла с расширением ехр. Демонстрирует применение цикла foreach. #include <iostream> using namespace std; int main() [ int nums[] = { 1, 6, 19, 4, -10, 88 } ; int min; Находит минимальное значение. min = nums[0]; int ia = 0; for(int X = nums[0]; ia < ((sizeof nums)/(sizeof nums[0])); ia++, X = nums[ ia]) if(min > x) min = x; cout Minimum is min endl; return 0; В оставшейся части главы описывается принцип работы транслятора. Как работает транслятор? принцип работы транслятора прост. Он читает входной файл и записывает его в выходной файл. Если в этот момент транслятор обнаруживает проверяемое ключевое слово, то замещает его эквивалентным кодом на языке С++. Свойственная транслятору простота делает его очень полезным ДЛЯ Для преобразования ехр-файла в стандартный файл с расширением срр обработайте его транслятором. Предположим, что исходный файл называется foreach.exp, тогда приведенная далее командная строка позволит транслировать его в чистый код на языке С++, который далее можно обрабатывать компилятором С++: trans foreach.exp foreach.срр После трансляции с помощью приложения trans полученный файл foreach.cpp содержит профамму, приведенную в листинге 4.3.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |