Mercurial > ~dholland > hg > ag > index.cgi
view doc/misc/html/examples/ffcalc.html @ 24:a4899cdfc2d6 default tip
Obfuscate the regexps to strip off the IBM compiler's copyright banners.
I don't want bots scanning github to think they're real copyright
notices because that could cause real problems.
author | David A. Holland |
---|---|
date | Mon, 13 Jun 2022 00:40:23 -0400 |
parents | 13d2b8934445 |
children |
line wrap: on
line source
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <HTML> <HEAD> <TITLE>Four Function Calculator</TITLE> </HEAD> <BODY BGCOLOR="#ffffff" BACKGROUND="tilbl6h.gif" TEXT="#000000" LINK="#0033CC" VLINK="#CC0033" ALINK="#CC0099"> <P> <IMG ALIGN="right" SRC="../images/agrsl6c.gif" ALT="AnaGram" WIDTH=124 HEIGHT=30 > <BR CLEAR="all"> Back to <A HREF="../index.html">Index</A> <P> <IMG ALIGN="bottom" SRC="../images/rbline6j.gif" ALT="----------------------" WIDTH=1010 HEIGHT=2 > <P> <H1>Four Function Calculator</H1> <IMG ALIGN="bottom" SRC="../images/rbline6j.gif" ALT="----------------------" WIDTH=1010 HEIGHT=2 > <P> <H2>Introduction</H2> <P> <tt>ffcalc.syn</tt> implements a simple four function calculator. The calculator has 52 registers, labeled 'a' through 'z' and 'A' through 'Z'. <tt>ffcalc</tt> evaluates arithmetic expressions and assignment statements and prints the results. The expressions may contain '<CODE>+</CODE>', '<CODE>-</CODE>', '<CODE>*</CODE>', and '<CODE>/</CODE>' operators as well as parentheses. In addition, <tt>ffcalc</tt> supports the free use of white space and C style comments in the input. It also includes syntax error handling, including a diagnostic message, and resynchronization. <P> <tt>ffcalcmx.syn</tt> is a simple variation on <tt>ffcalc.syn</tt>. The only difference between the two grammars is that <tt>ffcalcx</tt> uses a deliberately ambiguous grammar for expressions, with precedence statements to resolve the ambiguities. <P> <H2>Building FFCALC</H2> To build a working copy of <tt>ffcalc</tt>, you need to carry out the following steps: <UL> <LI> 1. Run Anagram and build a parser for <tt>ffcalc.syn</tt>. </LI> <LI> 2. Using your C compiler, compile and link <tt>ffcalc.c</tt>. </LI> </UL> <P> <H2>Running FFCALC</H2> <tt>ffcalc</tt> reads expressions and assignment statements from stdin. You may either type input directly, or provide input by using file redirection. The file <tt>test.ffc</tt> has been provided as a sample. <P> Run <tt>ffcalc</tt> from the command line and type an arithmetic expression or assignment statement to be evaluated. <tt>ffcalc</tt> will accept addition, subtraction, multiplication and division operations, as well as unary negation, using floating point arithmetic. It respects the conventional order of operations and allows the use of parentheses to override the natural order of computation. You may use spaces, tabs, and C-style comments freely. You may use variable names consisting of a single upper or lower case letter. <P> Each expression or assignment statement must be terminated by a newline. Note that <tt>ffcalc</tt>, unlike <tt>rcalc</tt>, does not explicitly check for division by zero. </P> <BR> <IMG ALIGN="bottom" SRC="../images/rbline6j.gif" ALT="----------------------" WIDTH=1010 HEIGHT=2 > <P> <IMG ALIGN="right" SRC="../images/pslrb6d.gif" ALT="Parsifal Software" WIDTH=181 HEIGHT=25> <BR CLEAR="right"> <P> Back to <A HREF="../index.html">Index</A> <P> <ADDRESS><FONT SIZE="-1"> AnaGram parser generator - examples<BR> Four Function Calculator<BR> Copyright © 1993-1999, Parsifal Software. <BR> All Rights Reserved.<BR> </FONT></ADDRESS> </BODY> </HTML>