/// <summary> /// Define primitive. The primitive is sort of macro which is /// implemented in C# and extract given expression to AST. /// </summary> /// <param name="name">identifier</param> /// <param name="primitive">primitive</param> /// <returns>new binding</returns> public AstBinding DefinePrimitive(string name, PrimitiveBinding.CompilerPrimitive primitive) { var symbol = Symbol.Intern(name); var syntax = new Syntax(symbol); var binding = new PrimitiveBinding(syntax, primitive); binding.VarIdx = Bindings.Count; Define(symbol, binding); return(binding); }
/// <summary> /// Define primitive. The primitive is sort of macro which is /// implemented in C# and extract given expression to AST. /// </summary> /// <param name="name">identifier</param> /// <param name="primitive">primitive</param> /// <returns>new binding</returns> public AstBinding DefinePrimitive(string stringName, PrimitiveBinding.CompilerPrimitive primitive) { var name = Name.Intern(stringName); var syntax = Syntax.Create(name); var binding = new PrimitiveBinding(syntax, primitive); binding.VarIdx = Bindings.Count; Define(Name, binding); return(binding); }