Exemplo n.º 1
0
 static void CheckFree(Block block, Definition def)
 {
     {
         UnitDefinition existingUnit;
         if (block.Units.TryGetValue(def.Name, out existingUnit))
             throw new SemanticError(def, "Already defined: " + existingUnit.Name, existingUnit);
     }
     {
         VarDefinition existingVar;
         if (block.Variables.TryGetValue(def.Name, out existingVar))
             throw new SemanticError(def, "Already defined: " + existingVar.Name, existingVar);
     }
     {
         ConstDefinition existingConst;
         if (block.Constants.TryGetValue(def.Name, out existingConst))
             throw new SemanticError(def, "Already defined: " + existingConst.Name, existingConst);
     }
     {
         FuncDefinition existingFunc;
         if (block.Functions.TryGetValue(def.Name, out existingFunc))
             throw new SemanticError(def, "Already defined: " + existingFunc.Name, existingFunc);
     }
 }
Exemplo n.º 2
0
 public SemanticError(Definition unit, string message, Definition existing = null) : base(unit.CodeRange, message)
 {
 }