Давайте создадим компилятор!   ::   Креншоу Джек

Страница: 195 из 382



Последняя вещь: измените процедуру Init для очистки массива как показано ниже:



{–}

{ Initialize }

procedure Init;

var i: integer;

begin

for i := 1 to MaxEntry do begin

ST[i]:= '';

SType[i] := ' ';

end;

GetChar;

Scan;

end;

{–}



Это должно работать. Испытайте ее и проверьте, что вы действительно можете использовать многосимвольные имена переменных.

СНОВА ОПЕРАТОРЫ ОТНОШЕНИЙ



У нас осталось последнее односимвольное ограничение – ограничение операторов отношений. Некоторые из операторов отношений действительно состоят из одиночных символов, но другие требуют двух. Это '<=' и '>='. Я также предпочитаю Паскалевское '<>' для «не равно» вместо '#'.

Как вы помните, в главе 7 я указал, что стандартный способ работы с операторами отношений – включить их в список ключевых слов и позволить лексическому анализатору отыскивать их. Но, опять, это требует выполнение полного анализа выражения, тогда как до этого мы у нас была возможность ограничить использование сканера началом утверждения.

Я упомянул тогда, что мы все же можем избежать неприятностей с этим, так как многосимвольных операторов отношений немного и они ограничены в применении. Было бы легко обрабатывать их просто как специальные случаи и поддерживать их специальным способом.

Требуемые изменения влияют только на подпрограммы генерации кода и процедуры Relation и ее друзей.

|< Пред. 193 194 195 196 197 След. >|

Java книги

Контакты: [email protected]