strdata.c revision 1
1N/A/***********************************************************************
1N/A* *
1N/A* This software is part of the ast package *
1N/A* Copyright (c) 1982-2011 AT&T Intellectual Property *
1N/A* and is licensed under the *
1N/A* Common Public License, Version 1.0 *
1N/A* by AT&T Intellectual Property *
1N/A* *
1N/A* A copy of the License is available at *
1N/A* http://www.opensource.org/licenses/cpl1.0.txt *
1N/A* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
1N/A* *
1N/A* Information and Software Systems Research *
1N/A* AT&T Research *
1N/A* Florham Park NJ *
1N/A* *
1N/A* David Korn <dgk@research.att.com> *
1N/A* *
1N/A***********************************************************************/
1N/A#pragma prototyped
1N/A/*
1N/A * data for string evaluator library
1N/A */
1N/A
1N/A#include <ast_standards.h>
1N/A#include "FEATURE/options"
1N/A#include "streval.h"
1N/A
1N/Aconst unsigned char strval_precedence[35] =
1N/A /* opcode precedence,assignment */
1N/A{
1N/A /* DEFAULT */ MAXPREC|NOASSIGN,
1N/A /* DONE */ 0|NOASSIGN|RASSOC,
1N/A /* NEQ */ 10|NOASSIGN,
1N/A /* NOT */ MAXPREC|NOASSIGN,
1N/A /* MOD */ 14,
1N/A /* ANDAND */ 6|NOASSIGN|SEQPOINT,
1N/A /* AND */ 9|NOFLOAT,
1N/A /* LPAREN */ MAXPREC|NOASSIGN|SEQPOINT,
1N/A /* RPAREN */ 1|NOASSIGN|RASSOC|SEQPOINT,
1N/A /* POW */ 14|NOASSIGN|RASSOC,
1N/A /* TIMES */ 14,
1N/A /* PLUSPLUS */ 15|NOASSIGN|NOFLOAT|SEQPOINT,
1N/A /* PLUS */ 13,
1N/A /* COMMA */ 1|NOASSIGN|SEQPOINT,
1N/A /* MINUSMINUS */ 15|NOASSIGN|NOFLOAT|SEQPOINT,
1N/A /* MINUS */ 13,
1N/A /* DIV */ 14,
1N/A /* LSHIFT */ 12|NOFLOAT,
1N/A /* LE */ 11|NOASSIGN,
1N/A /* LT */ 11|NOASSIGN,
1N/A /* EQ */ 10|NOASSIGN,
1N/A /* ASSIGNMENT */ 2|RASSOC,
1N/A /* COLON */ 0|NOASSIGN,
1N/A /* RSHIFT */ 12|NOFLOAT,
1N/A /* GE */ 11|NOASSIGN,
1N/A /* GT */ 11|NOASSIGN,
1N/A /* QCOLON */ 3|NOASSIGN|SEQPOINT,
1N/A /* QUEST */ 3|NOASSIGN|SEQPOINT|RASSOC,
1N/A /* XOR */ 8|NOFLOAT,
1N/A /* OROR */ 5|NOASSIGN|SEQPOINT,
1N/A /* OR */ 7|NOFLOAT,
1N/A /* DEFAULT */ MAXPREC|NOASSIGN,
1N/A /* DEFAULT */ MAXPREC|NOASSIGN,
1N/A /* DEFAULT */ MAXPREC|NOASSIGN,
1N/A /* DEFAULT */ MAXPREC|NOASSIGN
1N/A};
1N/A
1N/A/*
1N/A * This is for arithmetic expressions
1N/A */
1N/Aconst char strval_states[64] =
1N/A{
1N/A A_EOF, A_REG, A_REG, A_REG, A_REG, A_REG, A_REG, A_REG,
1N/A A_REG, 0, 0, A_REG, A_REG, A_REG, A_REG, A_REG,
1N/A A_REG, A_REG, A_REG, A_REG, A_REG, A_REG, A_REG, A_REG,
1N/A A_REG, A_REG, A_REG, A_REG, A_REG, A_REG, A_REG, A_REG,
1N/A
1N/A 0, A_NOT, 0, A_REG, A_REG, A_MOD, A_AND, A_LIT,
1N/A A_LPAR, A_RPAR, A_TIMES,A_PLUS, A_COMMA,A_MINUS,A_DOT, A_DIV,
1N/A A_DIG, A_DIG, A_DIG, A_DIG, A_DIG, A_DIG, A_DIG, A_DIG,
1N/A A_DIG, A_DIG, A_COLON,A_REG, A_LT, A_ASSIGN,A_GT, A_QUEST
1N/A
1N/A};
1N/A
1N/A
1N/Aconst char e_argcount[] = "%s: function has wrong number of arguments";
1N/Aconst char e_badnum[] = "%s: bad number";
1N/Aconst char e_moretokens[] = "%s: more tokens expected";
1N/Aconst char e_paren[] = "%s: unbalanced parenthesis";
1N/Aconst char e_badcolon[] = "%s: invalid use of :";
1N/Aconst char e_divzero[] = "%s: divide by zero";
1N/Aconst char e_synbad[] = "%s: arithmetic syntax error";
1N/Aconst char e_notlvalue[] = "%s: assignment requires lvalue";
1N/Aconst char e_recursive[] = "%s: recursion too deep";
1N/Aconst char e_questcolon[] = "%s: ':' expected for '?' operator";
1N/Aconst char e_function[] = "%s: unknown function";
1N/Aconst char e_incompatible[] = "%s: invalid floating point operation";
1N/Aconst char e_overflow[] = "%s: overflow exception";
1N/Aconst char e_domain[] = "%s: domain exception";
1N/Aconst char e_singularity[] = "%s: singularity exception";
1N/Aconst char e_charconst[] = "%s: invalid character constant";
1N/A
1N/A#include "FEATURE/math"