// $Id: calc.hh,v 1.12 1996/12/11 21:39:38 aml Exp $

#ifndef _CALC_DOT_HH_
#define _CALC_DOT_HH_

extern "C" {

void set_string_to_parse(char *st);
#include "yydefines.h"
}
#include "yydefines.hh"
#include "xxl_funcs.hh"
#include "rpn.hh"
#include "wk1.hh"
#include "cell.hh"


class Cell;

class Parser {
  public:
    Parser();
    int parse(char *st, short col, short row);
    int code;
    double number;
    short integ;
    Cell *cell;
    char * label;
};

#endif

/* 
$Log: calc.hh,v $
# Revision 1.12  1996/12/11  21:39:38  aml
# Sumif implemented.
# Diverse time functions implemented.
# Fixed needtoscroll2 to avoid out of control scroll.
#
Revision 1.11  1996/10/07 12:35:20  aml
First cut at error handling.
Date formats are in.
Fixed problem with blank cell drawing.

# Revision 1.10  1996/02/13  12:03:17  aml
# Fixed bug with range definition via mouse.
# Fixed bug in range iterators.
#
Revision 1.9  1996/01/11 22:48:36  aml
Range iterators created.
Functions sum, max and min now work properly.
Negative numbers now allowed by flex (oops :-)

# Revision 1.8  1996/01/07  09:07:21  aml
# Sheet::save and Sheet::load created.
# Program can now write and read wk1 files.
# Slight changes made to relative references. Bit 14 is now always 0.
#
# Revision 1.7  1996/01/05  23:05:50  aml
# Cell references evaluated.
# Spreadsheet is recalculated at every change, by an arbitrary order.
# Reformulated program structure. Evaluation and reverse parsing
# are member functions of Sheet.
#
# Revision 1.6  1996/01/03  23:07:02  aml
# Absolute and relative references to cells introduced.
# They are parsed and reverse parsed, not yet evaluated.
#
# Revision 1.5  1996/01/02  16:22:03  aml
# Formula compilation, evaluation and decompilation now work.
# Cells can be of type label, numerical formula or numbers.
#
# Revision 1.4  1995/12/30  16:40:20  aml
# First cut of formula compilation.
#
# Revision 1.3  1995/12/28  19:20:30  aml
# Created skeleton to merge calculation engine
#
# Revision 1.2  1995/12/28  18:34:07  aml
# None
#
*/
