Symbol AddSym(string name, Atoms atom, SymKinds kind, DataType datatype) { return(Add(name, new Symbol { Atom = atom, Kind = kind, DataType = datatype, })); }
Symbol AddIdent(string name, SymKinds kind, TypedValue value, DataType type) { return(Add(name, new Symbol { Kind = kind, DataType = type, Value = value })); }
Symbol AddIdent(string name, SymKinds kind, TypedValue value = null) { return(Add(name, new Symbol { Atom = Atoms.IDENT, Kind = kind, Value = value, DataType = (value == null) ? DataTypes.Unknown : value.DataType, })); }
// Create a symbol for a variable public static Symbol MakeVariable(string name, DataType datatype, SymKinds kind, bool mutable) { Symbol sym = new Symbol { Name = name, Kind = kind, DataType = datatype, Mutable = mutable, }; return(sym); }
Symbol AddFunction(string name, Atoms atom, int numargs, DataType type, CallKinds callkind, string method, SymKinds kind = SymKinds.FUNC) { return(Add(name, new Symbol { Atom = atom, Kind = kind, CallKind = callkind, NumArgs = numargs, DataType = type, CallInfo = CallInfo.Get(method), })); }
public void AddVariable(string name, DataType datatype, SymKinds kind, bool mutable) { CurrentScope.Add(MakeVariable(name, datatype, kind, mutable)); }