загрузка...
 
4. 1 Блок-схема функции  void main (int ac, char * av [ ])
Повернутись до змісту

4. 1 Блок-схема функции  void main (int ac, char * av [ ])

В функции get () блок №1 в интерпретаторе должен быть  if(nch==EOF)

{ lex=EOF; return; }

Однако программа part1.c предназначена только лишь для того, чтобы прочитать текст программы на SPL, распознать лексемы, а идентификаторы занести в специальную таблицу идентификаторов char TNM [400]. Поэтому в данной программе в функции get ( ) блок №1 являет собой цикл  while (nch!=EOF). Он позволяет прочитать весь текст программы на SPL до конца файла. Далее идет цикл  while (isspace(nch)), позволяющий пропускать символы пробела, табуляции, перехода на новую строку и на новую страницу.

Если символ nch, прочитанный из файла с помощью функции get (), не является одним из перечисленных выше, то происходит его распознавание с вызовом функции  number( ) или word( ).

Если nch является одним из перечисленных специальных символов, например, ‘(’, ‘)’, ‘+’ и т.д., то лексема получает соответствующее значение, считывается новый символ и происходит возврат в цикл (блок №1). В противном случае выдается сообщение о недопустимом символе и происходит выход из программы.



загрузка...