mirror of
https://github.com/pocketpy/pocketpy
synced 2025-10-20 11:30:18 +00:00
Update compiler.h
This commit is contained in:
parent
80e49a677e
commit
21977a3a8e
@ -28,6 +28,10 @@ class Compiler {
|
||||
const Token& prev() { return tokens.at(i-1); }
|
||||
const Token& curr() { return tokens.at(i); }
|
||||
const Token& next() { return tokens.at(i+1); }
|
||||
const Token& err() {
|
||||
if(i >= tokens.size()) return prev();
|
||||
return curr();
|
||||
}
|
||||
void advance(int delta=1) { i += delta; }
|
||||
|
||||
CodeEmitContext* ctx() { return &contexts.top(); }
|
||||
@ -921,9 +925,9 @@ __SUBSCR_END:
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void SyntaxError(Str msg){ lexer->throw_err("SyntaxError", msg, curr().line, curr().start); }
|
||||
void SyntaxError(){ lexer->throw_err("SyntaxError", "invalid syntax", curr().line, curr().start); }
|
||||
void IndentationError(Str msg){ lexer->throw_err("IndentationError", msg, curr().line, curr().start); }
|
||||
void SyntaxError(Str msg){ lexer->throw_err("SyntaxError", msg, err().line, err().start); }
|
||||
void SyntaxError(){ lexer->throw_err("SyntaxError", "invalid syntax", err().line, err().start); }
|
||||
void IndentationError(Str msg){ lexer->throw_err("IndentationError", msg, err().line, err().start); }
|
||||
|
||||
public:
|
||||
Compiler(VM* vm, const Str& source, const Str& filename, CompileMode mode){
|
||||
|
Loading…
x
Reference in New Issue
Block a user