/** * Copyright: Copyright (c) 2011 Jacob Carlborg. All rights reserved. * Authors: Jacob Carlborg * Version: Initial created: Jan 29, 2012 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) */ module dstep.translator.Declaration; import mambo.core._; import clang.Cursor; import dstep.translator.Translator; import dstep.translator.Output; alias dstep.translator.Output.output output; abstract class Declaration { protected { Cursor cursor; Cursor parent; Translator translator; } template Constructors () { import clang.Cursor; import dstep.translator.Output; this (Cursor cursor, Cursor parent, Translator translator) { super(cursor, parent, translator); } } this (Cursor cursor, Cursor parent, Translator translator) { this.cursor = cursor; this.parent = parent; this.translator = translator; } abstract string translate (); @property string spelling () { auto name = cursor.spelling; return name.isPresent || parent.isEmpty ? name : generateAnonymousName(cursor); } }