OSM Research Group, Harmony Project

24 June 1998


harmony -- parse a Harmony source file


harmony [-a] [-e] [-l] [-u] [-d[1]] source_file1 [source_file2 ...]


harmony is a program used to verify that a file corresponds to a valid Harmony 1.1 core language program. You may specify one or more files that harmony is to check.
Important: Read the BUGS section before using harmony.


harmony accepts the following options:
-a Indicates that Harmony keywords may be written in any combination of upper- and lower-case letters.
-e Indicates that each Harmony keyword is written either entirely in upper-case or entirely in lower-case letters.
-l Indicates that Harmony keywords are written in lower-case letters only. (This is the default case setting.)
-u Indicates that Harmony keywords are written in upper-case letters only.
-d Runs the lexical analysis in debug mode. Each lexical token is displayed as it is scanned from the input. Each debug message also shows the line number on which the token appears.
-d1 Runs the parse and the lexical analysis in debug mode. In addition to displaying the lexical token trace as described above, -d1 causes the parse to be traced as well. Parse debug messages will be difficult to understand unless you have the Harmony language grammar, which is found in harmony.yacc.


harmony relies on btyacc for backtracking in the event of ambiguities in the grammar. Because of the large number of ambiguities in the current Harmony grammar, if harmony begins to backtrack, it will get stuck in an infinite backtracking loop. Thus, you must be prepared to kill harmony (e.g., by typing ^C) if there is a syntax error in your input file. We may correct this poor behavior in a later release of harmony.


Historical note: Harmony has also been called OSM-L.
The Harmony language URL is http://osm7.cs.byu.edu/harmony/.

Harmony Home | Grammar | Parser | Reference | Copyright

Last updated Thu Jul 9 13:20:57 MDT 1998
OSM Administrator (osm@osm7.cs.byu.edu)
CS Dept Home Page  MSM Home Page  BYU Home Page  OSM Home Page