⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scanner.pl

📁 一个编译器的源程序
💻 PL
字号:
/* Scanner */

init_scanner(Datei):-
  see(Datei), 
  readln(Eingabe, _, ".", "0123456789", lowercase), 
  seen,
  scan(Eingabe, Symbole),
  retractall(symbole(_)), asserta(symbole(Symbole)).

symbol(Symbol):-
  symbole([Symbol|_]).
 
next_symbol:-
  retract(symbole([_|Symbole])),
  asserta(symbole(Symbole)).

reserviert(X):- 
  member(X, [while, do, begin, end, write, program, if, then, else]).

/* Symbole bilden */ 

scan([Symbol1, Symbol2|Symbole1], [Symbol3|Symbole3]):-
  zusammensetzen(Symbol1, Symbol2, Symbol3), !,
  scan(Symbole1, Symbole3).
scan([Symbol1|Symbole1], [Symbol2|Symbole2]):-
  verpacken(Symbol1, Symbol2), !,
  scan(Symbole1, Symbole2).
scan([], []).

zusammensetzen(<, =, <=).
zusammensetzen(<, >, <>).
zusammensetzen(>, =, >=).
zusammensetzen(:, =, :=).

verpacken(Symbol, bez(Symbol)):-
  name(Symbol, [K|_]), 
  is_alpha(K), 
  \+ reserviert(Symbol).
verpacken(Symbol, Symbol).

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -