home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
ssvpar.zip
/
SSCALC.YH
< prev
next >
Wrap
Text File
|
1994-12-01
|
5KB
|
200 lines
#if !defined( SSCALCSSH)
# define SSCALCSSH
# include<sslexc.h>
# include<ssyaccc.h>
# define ALexExpressionListMain 0
# define ALexExpressionListMLCom 1
# define ALexExpressionListSLCom 2
# define ALexEnd 4
# define ALexPlus 5
# define ALexMinus 6
# define ALexDiv 7
# define ALexMult 8
# define ALexMod 9
# define ALexPow 10
# define ALexOr 11
# define ALexAnd 12
# define ALexNot 13
# define ALexOParen 14
# define ALexCParen 15
# define ALexDec 16
# define ALexOct 17
# define ALexHex 18
# define AYaccStart 1
# define AYaccStartList 2
# define AYaccExprSingle 3
# define AYaccExprError 4
# define AYaccExprPlus 5
# define AYaccExprMinus 6
# define AYaccExprMult 7
# define AYaccExprDiv 8
# define AYaccExprMod 9
# define AYaccExprNot 10
# define AYaccExprAnd 11
# define AYaccExprOr 12
# define AYaccExprNested 13
# define AYaccExprNumber 14
# define AYaccNumberDec 15
# define AYaccNumberOct 16
# define AYaccNumberHex 17
SSRetConstChar ALexClassTokenToConstChar( SSUnsigned32 qulToken)
{
const char* zpchToken;
switch ( qulToken)
{
case ALexEnd:
zpchToken = ";";
break;
case ALexPlus:
zpchToken = "+";
break;
case ALexMinus:
zpchToken = "-";
break;
case ALexDiv:
zpchToken = "/";
break;
case ALexMult:
zpchToken = "*";
break;
case ALexMod:
zpchToken = "%";
break;
case ALexPow:
zpchToken = "**";
break;
case ALexOr:
zpchToken = "or";
break;
case ALexAnd:
zpchToken = "and";
break;
case ALexNot:
zpchToken = "not";
break;
case ALexOParen:
zpchToken = "(";
break;
case ALexCParen:
zpchToken = ")";
break;
case ALexDec:
zpchToken = "dec";
break;
case ALexOct:
zpchToken = "oct";
break;
case ALexHex:
zpchToken = "hex";
break;
case SSYaccErrorToken:
zpchToken = "%error";
break;
case SSYaccEofToken:
zpchToken = "eof";
break;
default:
zpchToken = SSLexTokenNotFound;
}
return zpchToken;
}
SSRetVoidP AYaccClassReduce( SSUnsigned32 qulProd, SSUnsigned32 qulSize, void* qpParm)
{
switch ( qulProd)
{
case AYaccStart:
/* start -> exprStatement */
break;
case AYaccStartList:
/* start -> start exprStatement */
break;
case AYaccExprSingle:
/* exprStatement -> expr ; */
break;
case AYaccExprError:
/* exprStatement -> %error ; */
break;
case AYaccExprPlus:
/* expr -> expr + expr */
break;
case AYaccExprMinus:
/* expr -> expr - expr */
break;
case AYaccExprMult:
/* expr -> expr * expr */
break;
case AYaccExprDiv:
/* expr -> expr / expr */
break;
case AYaccExprMod:
/* expr -> expr % expr */
break;
case AYaccExprNot:
/* expr -> not expr */
break;
case AYaccExprAnd:
/* expr -> expr and expr */
break;
case AYaccExprOr:
/* expr -> expr or expr */
break;
case AYaccExprNested:
/* expr -> ( expr ) */
break;
case AYaccExprNumber:
/* expr -> number */
break;
case AYaccNumberDec:
/* number -> dec */
break;
case AYaccNumberOct:
/* number -> oct */
break;
case AYaccNumberHex:
/* number -> hex */
break;
}
return SSYaccStackElementCreate( 0, 0);
}
#endif