mirror of
git://git.9front.org/plan9front/plan9front
synced 2025-01-12 11:10:06 +00:00
games/mix: fix incorrect line numbers
This commit is contained in:
parent
d1c0f53fcd
commit
60befe7df1
3 changed files with 37 additions and 36 deletions
2
rc/bin/g
2
rc/bin/g
|
@ -14,7 +14,7 @@ case 0
|
|||
exit usage
|
||||
case 1
|
||||
pattern=$1
|
||||
files=(`{ls *.[bcChlmsy] *.asm *.awk *.cc *.cgi *.cpp *.cs *.go *.goc *.java *.lx *.ms *.pl *.py *.rc *.tex *.xy >[2]/dev/null})
|
||||
files=(`{ls *.[bcChlmsy] *.ml[iyl] *.ml *.asm *.awk *.cc *.cgi *.cpp *.cs *.go *.goc *.java *.lx *.ms *.pl *.py *.rc *.tex *.xy >[2]/dev/null})
|
||||
case *
|
||||
pattern=$1
|
||||
shift
|
||||
|
|
|
@ -320,6 +320,14 @@ getr(void)
|
|||
return r;
|
||||
}
|
||||
|
||||
void
|
||||
ungetr(Rune r)
|
||||
{
|
||||
if(r == '\n')
|
||||
line--;
|
||||
Bungetrune(&bin);
|
||||
}
|
||||
|
||||
long
|
||||
yylex(void)
|
||||
{
|
||||
|
@ -339,22 +347,16 @@ Loop:
|
|||
case '\t':
|
||||
case ' ':
|
||||
goto Loop;
|
||||
case '\n':
|
||||
case '*':
|
||||
case '+':
|
||||
case '-':
|
||||
case ':':
|
||||
case ',':
|
||||
case '(':
|
||||
case ')':
|
||||
case '=':
|
||||
case '\n': case '*': case '+':
|
||||
case '-': case ':': case ',':
|
||||
case '(': case ')': case '=':
|
||||
return r;
|
||||
case '/':
|
||||
r = getr();
|
||||
if(r == '/') {
|
||||
if(r == '/')
|
||||
return LSS;
|
||||
} else
|
||||
Bungetrune(&bin);
|
||||
else
|
||||
ungetr(r);
|
||||
return '/';
|
||||
case '"':
|
||||
for(bp = buf; bp < buf+5; bp++) {
|
||||
|
@ -369,30 +371,20 @@ Loop:
|
|||
ep = buf+nelem(buf)-1;
|
||||
isnum = 1;
|
||||
for(;;) {
|
||||
if(runetomix(r) == -1)
|
||||
if(runetomix(r) == -1)
|
||||
yyerror("Invalid character %C", r);
|
||||
if(bp == ep)
|
||||
yyerror("Symbol or number too long");
|
||||
*bp++ = r;
|
||||
if(isnum && (r >= Runeself || !isdigit(r)))
|
||||
isnum = 0;
|
||||
r = getr();
|
||||
switch(r) {
|
||||
case Beof:
|
||||
case '\t':
|
||||
case '\n':
|
||||
case '+':
|
||||
case '-':
|
||||
case '*':
|
||||
case ':':
|
||||
case ',':
|
||||
case '(':
|
||||
case ')':
|
||||
case '=':
|
||||
case ' ':
|
||||
case '/':
|
||||
case '#':
|
||||
Bungetrune(&bin);
|
||||
switch(r = getr()) {
|
||||
case Beof: case '\t': case '\n':
|
||||
case '+': case '-': case '*':
|
||||
case ':': case ',': case '(':
|
||||
case ')': case '=': case ' ':
|
||||
case '/': case '#':
|
||||
ungetr(r);
|
||||
*bp = '\0';
|
||||
goto End;
|
||||
}
|
||||
|
@ -407,6 +399,18 @@ End:
|
|||
return yylval.sym->lex;
|
||||
}
|
||||
|
||||
Sym*
|
||||
getsym(char *name)
|
||||
{
|
||||
Sym *s;
|
||||
|
||||
s = emallocz(sizeof(*s) + strlen(name));
|
||||
strcpy(s->nbuf, name);
|
||||
s->name = s->nbuf;
|
||||
s->lex = LSYMREF;
|
||||
return s;
|
||||
}
|
||||
|
||||
Sym*
|
||||
sym(char *name)
|
||||
{
|
||||
|
@ -416,11 +420,7 @@ sym(char *name)
|
|||
s = (Sym*)avllookup(syms, &l, 0);
|
||||
if(s != nil)
|
||||
return s;
|
||||
|
||||
s = emallocz(sizeof(*s) + strlen(name));
|
||||
strcpy(s->nbuf, name);
|
||||
s->name = s->nbuf;
|
||||
s->lex = LSYMREF;
|
||||
s = getsym(name);
|
||||
avlinsert(syms, s);
|
||||
return s;
|
||||
}
|
||||
|
|
|
@ -39,6 +39,7 @@ void yyerror(char*, ...);
|
|||
void vmerror(char*, ...);
|
||||
void skipto(char);
|
||||
Sym *sym(char*);
|
||||
Sym *getsym(char*);
|
||||
void sinit(void);
|
||||
int asmfile(char*);
|
||||
int V(u32int, int);
|
||||
|
|
Loading…
Reference in a new issue