private void addElementWithError( final Compiler.Context context, final String key, final LiteralValue value) { Map.Entry<String, LiteralValue> previous = findElementByValue(value); if (previous != null) { context.error(value.getCodePosition(), "Cannot assign auto-value " + value + " to " + key); context.warning( previous.getValue().getCodePosition(), "Value " + value + " already assigned to " + previous.getKey()); return; } addElement(key, value); }
private void walkBindingNode( final Compiler.Context context, final AST node, final Definition message) { List<AST> children = node.getChildNodes(); final String identifier = getString(children.get(0)); final Binding binding = message.createLanguageBinding(identifier); for (int i = 1; i < children.size(); i += 2) { final String key = getString(children.get(i)); final String value = getString(children.get(i + 1)); final Binding.Data prev = binding.getData(key); if (prev != null) { context.error( node.getCodePosition(), identifier + " language binding for " + message.getName() + " already defined for '" + key + "'"); context.warning(prev.getCodePosition(), "this was the location of the previous definition"); } binding.setData(key, value, node.getCodePosition()); } }