by TomDoan » Thu Feb 17, 2011 4:17 pm
Yes, that's a good idea. It's a bit harder with RATS than with the types of programs you're discussing for several reasons:
1. RATS has many more "keywords". Most programming languages have only about a dozen control words (like function, if, else), some pre-defined data types and everything else is an expression. RATS has those control words plus about 180 other instructions which makes a recognizer a bit more difficult.
2. If you're in the "input" window, RATS is actively watching what you type for Enter keystrokes that will execute instructions. If you look at the behavior of a syntax coloring scheme in a "passive" editor, it will often switch the colors of large chunks of text as type and a line apparently switches to and from being (say) a comment. That's not a problem in that type of situation because the computer can analyze and re-analyze faster than you can type. We would have to be much more careful about turning the analyzer on and off to avoid slowing the execution of the program.
3. We have editors on three distinct platforms (Windows, Mac, Unix) which all have very different text editors.
Before we get to the syntax highlighting, we'll probably add the simpler "bracket" matcher, which looks for matches to { } and () combinations, counting through nesting levels.