Tidy up scanner.c

Make local functions static and rename them accordingly
This commit is contained in:
William S Fulton 2014-04-07 07:10:13 +01:00
commit 6cbf059fb8

View file

@ -45,8 +45,8 @@ typedef struct Locator {
} Locator; } Locator;
static int follow_locators = 0; static int follow_locators = 0;
void Scanner_push_brackets(Scanner*); static void brackets_push(Scanner*);
void Scanner_clear_brackets(Scanner*); static void brackets_clear(Scanner*);
/* ----------------------------------------------------------------------------- /* -----------------------------------------------------------------------------
* NewScanner() * NewScanner()
@ -70,7 +70,7 @@ Scanner *NewScanner(void) {
s->error_line = 0; s->error_line = 0;
s->freeze_line = 0; s->freeze_line = 0;
s->brackets = NewList(); s->brackets = NewList();
Scanner_push_brackets(s); brackets_push(s);
return s; return s;
} }
@ -103,7 +103,7 @@ void Scanner_clear(Scanner * s) {
Delete(s->str); Delete(s->str);
Clear(s->text); Clear(s->text);
Clear(s->scanobjs); Clear(s->scanobjs);
Scanner_clear_brackets(s); brackets_clear(s);
Delete(s->error); Delete(s->error);
s->str = 0; s->str = 0;
s->error = 0; s->error = 0;
@ -253,8 +253,7 @@ String *Scanner_errmsg(Scanner *s) {
return s->error; return s->error;
} }
int int Scanner_errline(Scanner *s) {
Scanner_errline(Scanner *s) {
return s->error_line; return s->error_line;
} }
@ -269,82 +268,75 @@ static void freeze_line(Scanner *s, int val) {
} }
/* ----------------------------------------------------------------------------- /* -----------------------------------------------------------------------------
* Scanner_brackets() * brackets_count()
* *
* Returns the number of brackets at the current depth. * Returns the number of brackets at the current depth.
* ----------------------------------------------------------------------------- */ * ----------------------------------------------------------------------------- */
int* static int *brackets_count(Scanner *s) {
Scanner_brackets(Scanner *s) {
assert(Len(s->brackets) > 0); assert(Len(s->brackets) > 0);
return (int*)(**((void***)Getitem(s->brackets, 0))); /* TODO: Use VoidObj*->ptr instead of void** */ return (int*)(**((void***)Getitem(s->brackets, 0))); /* TODO: Use VoidObj*->ptr instead of void** */
} }
/* ----------------------------------------------------------------------------- /* -----------------------------------------------------------------------------
* Scanner_clear_brackets() * brackets_clear()
* *
* Resets the current depth and clears all brackets. * Resets the current depth and clears all brackets.
* Usually called at the end of statements; * Usually called at the end of statements;
* ----------------------------------------------------------------------------- */ * ----------------------------------------------------------------------------- */
void static void brackets_clear(Scanner *s) {
Scanner_clear_brackets(Scanner *s) {
Clear(s->brackets); Clear(s->brackets);
Scanner_push_brackets(s); /* base bracket count should always be created */ brackets_push(s); /* base bracket count should always be created */
} }
/* ----------------------------------------------------------------------------- /* -----------------------------------------------------------------------------
* Scanner_inc_brackets() * brackets_increment()
* *
* Increases the number of brackets at the current depth. * Increases the number of brackets at the current depth.
* Usually called when '<' was found. * Usually called when '<' was found.
* ----------------------------------------------------------------------------- */ * ----------------------------------------------------------------------------- */
void static void brackets_increment(Scanner *s) {
Scanner_inc_brackets(Scanner *s) { (*brackets_count(s))++;
(*Scanner_brackets(s))++;
} }
/* ----------------------------------------------------------------------------- /* -----------------------------------------------------------------------------
* Scanner_dec_brackets() * brackets_decrement()
* *
* Decreases the number of brackets at the current depth. * Decreases the number of brackets at the current depth.
* Usually called when '>' was found. * Usually called when '>' was found.
* ----------------------------------------------------------------------------- */ * ----------------------------------------------------------------------------- */
void static void brackets_decrement(Scanner *s) {
Scanner_dec_brackets(Scanner *s) { (*brackets_count(s))--;
(*Scanner_brackets(s))--;
} }
/* ----------------------------------------------------------------------------- /* -----------------------------------------------------------------------------
* Scanner_reset_brackets() * brackets_reset()
* *
* Sets the number of '<' brackets back to zero. Called at the point where * Sets the number of '<' brackets back to zero. Called at the point where
* it is no longer possible to have a matching closing >> pair for a template. * it is no longer possible to have a matching closing >> pair for a template.
* ----------------------------------------------------------------------------- */ * ----------------------------------------------------------------------------- */
void static void brackets_reset(Scanner *s) {
Scanner_reset_brackets(Scanner *s) { (*brackets_count(s)) = 0;
(*Scanner_brackets(s)) = 0;
} }
/* ----------------------------------------------------------------------------- /* -----------------------------------------------------------------------------
* Scanner_push_brackets() * brackets_push()
* *
* Increases the depth of brackets. * Increases the depth of brackets.
* Usually called when '(' was found. * Usually called when '(' was found.
* ----------------------------------------------------------------------------- */ * ----------------------------------------------------------------------------- */
void static void brackets_push(Scanner *s) {
Scanner_push_brackets(Scanner *s) {
int *newInt = malloc(sizeof(int)); int *newInt = malloc(sizeof(int));
*newInt = 0; *newInt = 0;
Push(s->brackets, NewVoid(newInt, free)); Push(s->brackets, NewVoid(newInt, free));
} }
/* ----------------------------------------------------------------------------- /* -----------------------------------------------------------------------------
* Scanner_pop_brackets() * brackets_pop()
* *
* Decreases the depth of brackets. * Decreases the depth of brackets.
* Usually called when ')' was found. * Usually called when ')' was found.
* ----------------------------------------------------------------------------- */ * ----------------------------------------------------------------------------- */
void static void brackets_pop(Scanner *s) {
Scanner_pop_brackets(Scanner *s) {
if (Len(s->brackets) > 0) /* protect against unbalanced ')' brackets */ if (Len(s->brackets) > 0) /* protect against unbalanced ')' brackets */
Delitem(s->brackets, 0); Delitem(s->brackets, 0);
} }
@ -539,15 +531,15 @@ static int look(Scanner * s) {
/* Look for single character symbols */ /* Look for single character symbols */
else if (c == '(') { else if (c == '(') {
Scanner_push_brackets(s); brackets_push(s);
return SWIG_TOKEN_LPAREN; return SWIG_TOKEN_LPAREN;
} }
else if (c == ')') { else if (c == ')') {
Scanner_pop_brackets(s); brackets_pop(s);
return SWIG_TOKEN_RPAREN; return SWIG_TOKEN_RPAREN;
} }
else if (c == ';') { else if (c == ';') {
Scanner_clear_brackets(s); brackets_clear(s);
return SWIG_TOKEN_SEMI; return SWIG_TOKEN_SEMI;
} }
else if (c == ',') else if (c == ',')
@ -558,8 +550,8 @@ static int look(Scanner * s) {
return SWIG_TOKEN_RBRACE; return SWIG_TOKEN_RBRACE;
else if (c == '{') { else if (c == '{') {
/* Reset count to zero */ /* Reset count to zero */
Scanner_pop_brackets(s); brackets_pop(s);
Scanner_push_brackets(s); brackets_push(s);
return SWIG_TOKEN_LBRACE; return SWIG_TOKEN_LBRACE;
} }
else if (c == '=') else if (c == '=')
@ -865,7 +857,7 @@ static int look(Scanner * s) {
break; break;
case 60: /* shift operators */ case 60: /* shift operators */
Scanner_inc_brackets(s); brackets_increment(s);
if ((c = nextchar(s)) == 0) if ((c = nextchar(s)) == 0)
return SWIG_TOKEN_LESSTHAN; return SWIG_TOKEN_LESSTHAN;
if (c == '<') if (c == '<')
@ -878,10 +870,10 @@ static int look(Scanner * s) {
} }
break; break;
case 61: case 61:
Scanner_dec_brackets(s); brackets_decrement(s);
if ((c = nextchar(s)) == 0) if ((c = nextchar(s)) == 0)
return SWIG_TOKEN_GREATERTHAN; return SWIG_TOKEN_GREATERTHAN;
if (c == '>' && ((*Scanner_brackets(s))<0)) /* go to double >> only, if no template < has been used */ if (c == '>' && ((*brackets_count(s))<0)) /* go to double >> only, if no template < has been used */
state = 250; state = 250;
else if (c == '=') else if (c == '=')
return SWIG_TOKEN_GTEQUAL; return SWIG_TOKEN_GTEQUAL;
@ -1328,7 +1320,7 @@ static int look(Scanner * s) {
break; break;
case 240: /* LSHIFT, LSEQUAL */ case 240: /* LSHIFT, LSEQUAL */
Scanner_inc_brackets(s); brackets_increment(s);
if ((c = nextchar(s)) == 0) if ((c = nextchar(s)) == 0)
return SWIG_TOKEN_LSHIFT; return SWIG_TOKEN_LSHIFT;
else if (c == '=') else if (c == '=')
@ -1340,7 +1332,7 @@ static int look(Scanner * s) {
break; break;
case 250: /* RSHIFT, RSEQUAL */ case 250: /* RSHIFT, RSEQUAL */
Scanner_dec_brackets(s); brackets_decrement(s);
if ((c = nextchar(s)) == 0) if ((c = nextchar(s)) == 0)
return SWIG_TOKEN_RSHIFT; return SWIG_TOKEN_RSHIFT;
else if (c == '=') else if (c == '=')