/* Copyright (c) 1979 Regents of the University of California */
* pi - Pascal interpreter code translator
* Charles Haley, Bill Joy UCB
* Version 1.2 November 1978
* pxp - Pascal execution profiler
* Version 1.2 November 1978
struct yytok Yla
[YYLASIZ
];
copy(&Yla
[yylacnt
], y
, sizeof Yla
[0]);
copy(&Y
, &Yla
[yylacnt
], sizeof Y
);
while (c
== ' ' || c
== '\t') {
case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g':
case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n':
case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u':
case 'v': case 'w': case 'x': case 'y': case 'z':
case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G':
case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N':
case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U':
case 'V': case 'W': case 'X': case 'Y': case 'Z':
} while (alph(c
) || digit(c
));
for (cp
= token
; *cp
; cp
++)
if (*cp
>= 'A' && *cp
<= 'Z') {
if (*ip
< yykey
|| *ip
>= lastkey
) {
* from the keyword table.
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
if (c
== 'b' || c
== 'B') {
* nonstandard - octal constants
yerror("Octal constants are non-standard");
yerror("Digits required after decimal point");
if (c
== 'e' || c
== 'E') {
if (c
== '+' || c
== '-') {
yerror("Digits required in exponent");
yerror("Character/string delimiter is '");
yerror("Unmatched %c for string", delim
);
yerror("Null string not allowed");
yerror("Digits required before decimal point");
yerror("{ in a { ... } comment");
if ((c
= readch()) == '*') {
yerror("Comment does not terminate - QUIT");
if (c
== '(' && (c
= readch()) == '*') {
yerror("(* in a (* ... *) comment");
if ((c
= readch()) != ')')
* Setuflg trims the current
* input line to at most 72 chars
if (charbuf
[71] != '\n') {