Gri: programming

Programming Gri 1: Introduction 2: Simple example 3: Fancy example 4: Running Gri 5: Programming Gri 6: General Issues 7: X-Y Plots 8: Contour Plots 9: Image Plots 10: Examples 11: Handling Data 12: Gri Commands 13: Gri Extras 14: Evolution of Gri 15: Installing Gri 16: Gri Bugs 17: System Tools 18: Acknowledgments 19: License 20: Newsgroup 21: Concept Index | # 5: Programming in the Gri Language The Gri programming language has ``if`' statements to control program flow, and a ``while`' statement to repeat commands. There are two data types in Gri: ``variables'' (to store numbers) and ``synonyms'' (to store character strings). Gri recognizes commands by matching statements against its list of known commands. This list is extensible; it is easy to add new commands as extensions to Gri. Online Help: Getting help from gri itself Command Lines: Continued lines, multiple statements Variables: Variables (for storing numbers) Synonyms: Synonyms (for storing character strings) If Statements: If statements Loops: Repeating command lines Mathematics: Doing mathematics on columns, grids etc rpn Mathematics: Doing mathematics on variables Text: Doing things with characters strings Adding New Commands: How to customize Gri by adding new commands Missing Values: How to specify missing data Hints: Hints for good Gri programming Debugging: Debugging Gri programs Error Messages: What to do about Gri error messages ## 5.1: Online Help Type ``help`' to get a list of available commands and other topics of interest. Here's how Gri responds
    Type `help' followed by a command-name:
     cd          close         convert       create
     debug       delete        differentiate draw
     expecting   filter        flip          get
     help        if            ignore        input
     insert      interpolate   list          ls
     mask        move          new           open
     pwd         query         quit          read
     regress     reorder       rescale       resize
     return      rewind        set           show
     skip        smooth        sprintf       state
     superuser   system        write
    Or type `help -' followed by a topic in:
     example     extending     files         math
     strings     synonyms      variables     manual
Some commands have more words than shown. You can type these additional words to narrow the help down; otherwise Gri will give you help on all commands that begin with the indicated words. For example, try ``help set`' and ``help set x`'. When you ask for help on a multi-word command, Gri tells you about all commands which begin with the words you've typed. Thus,
    help
    help draw
    help draw zero
    help draw zero line
narrow in on the command ``draw zero line`'. The response to the most complete request is:
    `draw zero line [horizontally|vertically]'
      draw zero line
        Draw line y=0 if it's within axes
      draw zero line horizontally
        Draw line y=0 if it's within axes
      draw zero line vertically
        Draw line x=0 if it's within axes
The part enclosed in angled quotes is the syntactical description of the command. (NOTE: The square brackets indicate an optional word (in this case) or words. The vertical bar indicates that either the item on the left or the item on the right may appear; it is a logical OR operator. The only other special characters in syntax descriptions are the braces ``{}`', which are used to enclose multiple words which act as one unit; they are used to clarify the choices presented to the OR operator.) Following the syntactical description are examples. Each example is indented 2 spaces, and a description of it (which always starts with an upper-case character and ends with a period, to indicate that it's an English description) follows that, indented by an additional 2 spaces. ## 5.2: Command Lines To extend a command across several lines, use a backslash ``\\`' at the very end of all lines but the last:
    draw line from \
      10 20 \
      to \
      10 30