Example #1
0
 Symbol AddSym(string name, Atoms atom, SymKinds kind, DataType datatype)
 {
     return(Add(name, new Symbol {
         Atom = atom,
         Kind = kind,
         DataType = datatype,
     }));
 }
Example #2
0
 Symbol AddIdent(string name, SymKinds kind, TypedValue value, DataType type)
 {
     return(Add(name, new Symbol {
         Kind = kind,
         DataType = type,
         Value = value
     }));
 }
Example #3
0
 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,
     }));
 }
Example #4
0
        // 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);
        }
Example #5
0
 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),
     }));
 }
Example #6
0
 public void AddVariable(string name, DataType datatype, SymKinds kind, bool mutable)
 {
     CurrentScope.Add(MakeVariable(name, datatype, kind, mutable));
 }