# Parse a super class declaration
# Fatal error if the `string` is not a syntactically correct super class declaration
- fun parse_superclass(string: String): ASuperclass
+ fun parse_superclass(string: String): APropdef
do
var mod_string = "class Dummy\nsuper {string}\nend"
var nclassdef = parse_classdef(mod_string).as(AStdClassdef)
- var nsuperclasses = nclassdef.n_superclasses
+ var nsuperclasses = nclassdef.n_propdefs
if nsuperclasses.length != 1 then
self.fatal_error(null, "Fatal Error: not a super class declaration")
abort
end
end
+# A modified lexer that feed tokens before and after the real tokens.
class InjectedLexer
super Lexer
+ # The tokens to use before the real tokens (in order).
var injected_before = new List[Token]
+
+ # The tokens to use after the real tokens (in order).
+ # The real EOF token is produced after these tokens.
var injected_after = new List[Token]
private var is_finished = false