Home | History | Annotate | Download | only in lib

Lines Matching refs:scanner

109 static void stringlexer_init(StringLexer *scanner, char *input);

114 static void stringscan_advance(StringLexer *scanner);
115 static int stringscan_gettok(StringLexer *scanner);
772 stringlexer_init(StringLexer *scanner, char *input)
774 stringlexer_init(scanner, input)
775 StringLexer *scanner;
779 scanner->text[0]='\0';
780 scanner->input = input;
781 scanner->p = input;
782 stringscan_advance(scanner);
787 stringscan_advance(StringLexer *scanner)
789 stringscan_advance(scanner)
790 StringLexer *scanner;
793 if ( *(scanner->p) == '\0' ) scanner->c = StringScanEOF;
794 scanner->c = *(scanner->p)++;
799 stringscan_gettok(StringLexer *scanner)
801 stringscan_gettok(scanner)
802 StringLexer *scanner;
805 char *index = &scanner->text[0];
808 while ( isspace(scanner->c) ) { stringscan_advance(scanner); }
809 if ( isdigit(scanner->c) )
812 while ( isdigit(scanner->c) ) {
813 *index++ = scanner->c;
814 stringscan_advance(scanner);
819 switch ( scanner->c )
821 case '#' : stringscan_advance(scanner); return POUND;
822 case '(' : stringscan_advance(scanner); return LPAREN;
823 case ')' : stringscan_advance(scanner); return RPAREN;
824 case '%' : stringscan_advance(scanner); return PERCENT;
825 case ':' : stringscan_advance(scanner); return COLON;
826 case '.' : stringscan_advance(scanner); return PERIOD;
830 sprintf(ebuf, "invalid char in ast_scan: '%c'", scanner->c);