diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | 114a878c64ce6f8223cfd22d76a20eb16d177e5e (patch) | |
tree | acaf47eb0fa12142d3896416a69e74cbf5a72242 /buildtools/lib/parsers/autotools/autotoolsast.cpp | |
download | tdevelop-114a878c64ce6f8223cfd22d76a20eb16d177e5e.tar.gz tdevelop-114a878c64ce6f8223cfd22d76a20eb16d177e5e.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdevelop@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'buildtools/lib/parsers/autotools/autotoolsast.cpp')
-rw-r--r-- | buildtools/lib/parsers/autotools/autotoolsast.cpp | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/buildtools/lib/parsers/autotools/autotoolsast.cpp b/buildtools/lib/parsers/autotools/autotoolsast.cpp new file mode 100644 index 00000000..71596e3d --- /dev/null +++ b/buildtools/lib/parsers/autotools/autotoolsast.cpp @@ -0,0 +1,117 @@ +/*************************************************************************** + * Copyright (C) 2005 by Alexander Dymo * + * adymo@kdevelop.org * + * * + * Copyright (c) 2005 by Matt Rogers * + * mattr@kde.org * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Library General Public License as * + * published by the Free Software Foundation; either version 2 of the * + * License, or (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU Library General Public * + * License along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ +#include "autotoolsast.h" + +namespace AutoTools { + +//AST + +AST::~AST() +{ + for (QValueList<AST*>::iterator it = m_children.begin(); it != m_children.end(); ++it) + { + AST *node = *it; + delete node; + } +} + +void AST::addChildAST(AST *node) +{ + m_children.append(node); +} + +void AST::writeBack(QString &buffer) +{ + for (QValueList<AST*>::const_iterator it = m_children.constBegin(); + it != m_children.constEnd(); ++it) + { + if (*it) + (*it)->writeBack(buffer); + } +} + +QString AST::indentation() +{ + QString result; + for (int i = 0; i < depth(); i++) + result += '\t'; + return result; +} + +bool AST::hasChildren() const +{ + return !m_children.isEmpty(); +} + +QValueList<AST*> AST::children() const +{ + return m_children; +} + +//ProjectAST + +void ProjectAST::writeBack(QString &buffer) +{ + if ( isRule() ) + buffer += scopedID; + else + buffer += indentation(); + + AST::writeBack(buffer); + +} + +void ProjectAST::addChildAST(AST *node) +{ + statements.append(node); + AST::addChildAST(node); +} + +void AssignmentAST::writeBack(QString &buffer) +{ + buffer += indentation() + scopedID + " " + op + values.join(""); +} + +void AutomakeTargetAST::writeBack( QString& buffer ) +{ + buffer += target + ":" + deps.join(""); +} + +void ConditionAST::writeBack( QString& buffer ) +{ + buffer += indentation() + type + " " + conditionName; +} + +void NewLineAST::writeBack(QString &buffer) +{ + buffer += "\n"; +} + +void CommentAST::writeBack(QString &buffer) +{ + buffer += indentation() + comment; +} + +} + +// kate: indent-mode csands; tab-width 4; space-indent off; |