📄 scanner.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 + -