summaryrefslogtreecommitdiffstats
path: root/microbe/main.cpp
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-02-24 01:49:02 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-02-24 01:49:02 +0000
commit5de3dd4762ca33a0f92e79ffa4fe2ff67069d531 (patch)
treebad482b7afa4cdf47422d60a5dd2c61c7e333b09 /microbe/main.cpp
downloadktechlab-5de3dd4762ca33a0f92e79ffa4fe2ff67069d531.tar.gz
ktechlab-5de3dd4762ca33a0f92e79ffa4fe2ff67069d531.zip
Added KDE3 version of ktechlab
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/ktechlab@1095338 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'microbe/main.cpp')
-rw-r--r--microbe/main.cpp80
1 files changed, 80 insertions, 0 deletions
diff --git a/microbe/main.cpp b/microbe/main.cpp
new file mode 100644
index 0000000..1325159
--- /dev/null
+++ b/microbe/main.cpp
@@ -0,0 +1,80 @@
+/***************************************************************************
+ * Copyright (C) 2004-2005 by Daniel Clarke *
+ * Copyright (C) 2005 by David Saxton *
+ * daniel.jc@gmail.com *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU 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 General Public License *
+ * along with this program; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
+ ***************************************************************************/
+
+#include "microbe.h"
+#include "pic14.h"
+
+#include <kaboutdata.h>
+#include <kcmdlineargs.h>
+#include <klocale.h>
+#include <qfile.h>
+
+#include <iostream>
+#include <fstream>
+using namespace std;
+
+static const char description[] =
+ I18N_NOOP("The Microbe Compiler");
+
+static const char version[] = "0.3";
+
+static KCmdLineOptions options[] =
+{
+ { "show-source", I18N_NOOP( "Show source code lines in assembly output"),0},
+ { "nooptimize", I18N_NOOP( "Do not attempt optimization of generated instructions."),0},
+ { "+[Input URL]", I18N_NOOP( "Input filename" ),0},
+ { "+[Output URL]", I18N_NOOP( "Output filename" ),0},
+ KCmdLineLastOption
+};
+
+int main(int argc, char **argv)
+{
+ KAboutData about("microbe", I18N_NOOP("Microbe"), version, description,
+ KAboutData::License_GPL, "(C) 2004-2005, The KTechlab developers", 0, "http://ktechlab.org", "ktechlab-devel@lists.sourceforge.net" );
+ about.addAuthor( "Daniel Clarke", 0, "daniel.jc@gmail.com" );
+ about.addAuthor( "David Saxton", 0, "david@bluehaze.org" );
+ KCmdLineArgs::init(argc, argv, &about);
+ KCmdLineArgs::addCmdLineOptions( options );
+
+ KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
+
+ if(args->count() == 2 )
+ {
+ Microbe mb;
+ QString s = mb.compile( args->arg(0), args->isSet("show-source"), args->isSet("optimize"));
+ QString errorReport = mb.errorReport();
+
+ if ( !errorReport.isEmpty() )
+ {
+ cerr << mb.errorReport();
+ return 1; // If there was an error, don't write the output to file.
+ }
+
+ else
+ {
+ ofstream out(args->arg(1));
+ out << s;
+ return 0;
+ }
+ }
+ else args->usage();
+}
+