From 545515b5e010df614ec26cdb1e63dff66c460cb7 Mon Sep 17 00:00:00 2001 From: Minero Aoki Date: Sun, 7 Dec 2008 08:09:20 +0000 Subject: [PATCH] * net/loveruby/cflat/ast/ToplevelScope.java: use SemanticException instead of SemanticError for duplicated declarations/definitions. git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4098 1b9489fe-b721-0410-924e-b54b9192deb8 --- ChangeLog | 9 +++++++++ net/loveruby/cflat/ast/ToplevelScope.java | 22 +++++++++++++--------- 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9401f8f..9053da1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +Sun Dec 7 17:09:17 2008 Minero Aoki + + * net/loveruby/cflat/ast/ToplevelScope.java: use SemanticException + instead of SemanticError for duplicated declarations/definitions. + +Sun Dec 7 17:08:26 2008 Minero Aoki + + * test: test declaration override (error path). + Sun Dec 7 16:55:56 2008 Minero Aoki * test: test declaration override. diff --git a/net/loveruby/cflat/ast/ToplevelScope.java b/net/loveruby/cflat/ast/ToplevelScope.java index 315120f..2c3e970 100644 --- a/net/loveruby/cflat/ast/ToplevelScope.java +++ b/net/loveruby/cflat/ast/ToplevelScope.java @@ -28,21 +28,25 @@ public class ToplevelScope extends Scope { /** Declare variable or function globally. */ // #@@range/declareEntity{ - public void declareEntity(Entity ent) { - if (entities.containsKey(ent.name())) { - throw new Error("duplicated declaration: " + ent.name()); + public void declareEntity(Entity entity) throws SemanticException { + Entity e = entities.get(entity.name()); + if (e != null) { + throw new SemanticException("duplicated declaration: " + + entity.name() + ": " + + e.location() + " and " + entity.location()); } - entities.put(ent.name(), ent); + entities.put(entity.name(), entity); } // #@@} /** Define variable or function globally. */ // #@@range/defineEntity{ - public void defineEntity(Entity entity) { - Entity ent = entities.get(entity.name()); - if (ent != null && ent.isDefined()) { - throw new Error("duplicated definition: " + entity.name() + ": " + - ent.location() + " and " + entity.location()); + public void defineEntity(Entity entity) throws SemanticException { + Entity e = entities.get(entity.name()); + if (e != null && e.isDefined()) { + throw new SemanticException("duplicated definition: " + + entity.name() + ": " + + e.location() + " and " + entity.location()); } entities.put(entity.name(), entity); }