Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ianj-als/pcl.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Johnson <ian.johnson@appliedlanguage.com>2013-05-07 18:26:13 +0400
committerIan Johnson <ian.johnson@appliedlanguage.com>2013-05-07 18:26:13 +0400
commit139baeffad90c29a1c4a8c3a2bb8bfea364d8ddd (patch)
treefb472a52731b0206e9934e1df8dce83136cc6994
parent3defd7e03d5ac35af0354ddb4fbc4214b3bfbbef (diff)
Add usage and gave the compiler executable a tidy up.
-rwxr-xr-xsrc/pcl/pclc.py19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/pcl/pclc.py b/src/pcl/pclc.py
index 8efef80..b0d1197 100755
--- a/src/pcl/pclc.py
+++ b/src/pcl/pclc.py
@@ -23,6 +23,13 @@ from visitors.executor_visitor import ExecutorVisitor
if __name__ == '__main__':
+ # Check we've got at least one command line argument
+ if len(sys.argv) < 2:
+ print "Usage:"
+ print "\t%s [PCL filename]" % os.path.basename(sys.argv[0])
+ print
+ sys.exit(2)
+
# Add the PCL extension is one is missing
basename = os.path.basename(sys.argv[1])
basename_bits = basename.split(".")
@@ -35,10 +42,13 @@ if __name__ == '__main__':
if os.path.isfile(pcl_filename) is False:
print "ERROR: Cannot find file %s" % pcl_filename
sys.exit(1)
+
+ # Parse...
ast = parse_component(pcl_filename)
if not ast:
sys.exit(1)
+ # Resolve...
resolver = Resolver(os.getenv("PCL_IMPORT_PATH", "."))
resolver.resolve(ast)
for warning in resolver.get_warnings():
@@ -47,8 +57,13 @@ if __name__ == '__main__':
for error in resolver.get_errors():
print error
sys.exit(1)
- else:
- executor = ExecutorVisitor(basename_bits[0])
+
+ # Execute.
+ executor = ExecutorVisitor(basename_bits[0])
+ try:
ast.accept(executor)
+ except Exception as ex:
+ print "ERROR: Code generation failed: %s" % ex
+ sys.exit(1)
sys.exit(0)