mirror of
https://codeberg.org/ProgramSnail/lang_2023.git
synced 2025-12-05 22:48:42 +00:00
builtin functions partial fix
This commit is contained in:
parent
bad48a1da0
commit
e6a03ef9bf
7 changed files with 80 additions and 91 deletions
|
|
@ -174,10 +174,6 @@ private:
|
|||
|
||||
//
|
||||
|
||||
bool HandleBuiltinFunctionCall(FunctionCallExpression* node);
|
||||
|
||||
bool HandleBuiltinTypeclassFunctionCall(FunctionCallExpression* node);
|
||||
|
||||
private:
|
||||
info::GlobalInfo::NamespaceVisitor namespace_visitor_;
|
||||
info::GlobalInfo& global_info_;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
#pragma once
|
||||
|
||||
#include <cstdlib>
|
||||
#include <unordered_set>
|
||||
#include <vector>
|
||||
#include <string>
|
||||
#include <memory>
|
||||
|
|
@ -54,6 +55,39 @@ inline ValueType ClassInternalsModifierToValueType(ClassInternalsModifier modifi
|
|||
exit(1); // unreachable
|
||||
}
|
||||
|
||||
inline bool IsBuiltinFunction(const std::string& name) { // optimize ??
|
||||
std::unordered_set<std::string> builtin_functions;
|
||||
|
||||
builtin_functions.insert("=");
|
||||
builtin_functions.insert("<-");
|
||||
builtin_functions.insert("==");
|
||||
builtin_functions.insert("!=");
|
||||
builtin_functions.insert("<");
|
||||
builtin_functions.insert(">");
|
||||
builtin_functions.insert("<=");
|
||||
builtin_functions.insert(">=");
|
||||
builtin_functions.insert("+=");
|
||||
builtin_functions.insert("-=");
|
||||
builtin_functions.insert("*=");
|
||||
builtin_functions.insert("//=");
|
||||
builtin_functions.insert("%=");
|
||||
builtin_functions.insert("/=");
|
||||
builtin_functions.insert("+");
|
||||
builtin_functions.insert("-");
|
||||
builtin_functions.insert("*");
|
||||
builtin_functions.insert("//");
|
||||
builtin_functions.insert("%");
|
||||
builtin_functions.insert("/");
|
||||
builtin_functions.insert("&&");
|
||||
builtin_functions.insert("||");
|
||||
builtin_functions.insert("size");
|
||||
builtin_functions.insert("random");
|
||||
builtin_functions.insert("print");
|
||||
builtin_functions.insert("scan");
|
||||
|
||||
return builtin_functions.count(name) != 0;
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
class Storage {
|
||||
public:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue