18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* yylex - scanner front-end for flex */ 28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*- 48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (c) 1990 The Regents of the University of California. 58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * All rights reserved. 68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This code is derived from software contributed to Berkeley by 88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Vern Paxson. 98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * The United States Government has rights in this work pursuant 118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * to contract no. DE-AC03-76SF00098 between the United States 128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Department of Energy and the University of California. 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Redistribution and use in source and binary forms with or without 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modification are permitted provided that: (1) source distributions retain 168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * this entire copyright notice and comment, and (2) distributions including 178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * binaries display the following acknowledgement: ``This product includes 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * software developed by the University of California, Berkeley and its 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * contributors'' in the documentation or other materials provided with the 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * distribution and in all advertising materials mentioning features or use 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * of this software. Neither the name of the University nor the names of 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * its contributors may be used to endorse or promote products derived from 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * this software without specific prior written permission. 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF 268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* $Header: /home/daffy/u0/vern/flex/RCS/yylex.c,v 2.13 95/03/04 16:10:41 vern Exp $ */ 308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <ctype.h> 328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "flexdef.h" 338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "parse.h" 348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* yylex - scan for a regular expression token */ 378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectint yylex() 398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project int toktype; 418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static int beglin = false; 428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project extern char *yytext; 438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if ( eofseen ) 458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project toktype = EOF; 468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project else 478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project toktype = flexscan(); 488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if ( toktype == EOF || toktype == 0 ) 508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project eofseen = 1; 528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if ( sectnum == 1 ) 548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project synerr( _( "premature EOF" ) ); 568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project sectnum = 2; 578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project toktype = SECTEND; 588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project else 618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project toktype = 0; 628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if ( trace ) 658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if ( beglin ) 678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project fprintf( stderr, "%d\t", num_rules + 1 ); 698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project beglin = 0; 708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project switch ( toktype ) 738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case '<': 758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case '>': 768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case '^': 778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case '$': 788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case '"': 798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case '[': 808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case ']': 818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case '{': 828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case '}': 838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case '|': 848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case '(': 858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case ')': 868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case '-': 878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case '/': 888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case '\\': 898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case '?': 908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case '.': 918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case '*': 928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case '+': 938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case ',': 948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project (void) putc( toktype, stderr ); 958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project break; 968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case '\n': 988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project (void) putc( '\n', stderr ); 998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if ( sectnum == 2 ) 1018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project beglin = 1; 1028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project break; 1048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case SCDECL: 1068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project fputs( "%s", stderr ); 1078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project break; 1088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case XSCDECL: 1108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project fputs( "%x", stderr ); 1118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project break; 1128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case SECTEND: 1148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project fputs( "%%\n", stderr ); 1158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project /* We set beglin to be true so we'll start 1178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * writing out numbers as we echo rules. 1188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * flexscan() has already assigned sectnum. 1198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 1208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if ( sectnum == 2 ) 1218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project beglin = 1; 1228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project break; 1248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case NAME: 1268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project fprintf( stderr, "'%s'", nmstr ); 1278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project break; 1288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CHAR: 1308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project switch ( yylval ) 1318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 1328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case '<': 1338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case '>': 1348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case '^': 1358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case '$': 1368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case '"': 1378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case '[': 1388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case ']': 1398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case '{': 1408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case '}': 1418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case '|': 1428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case '(': 1438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case ')': 1448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case '-': 1458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case '/': 1468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case '\\': 1478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case '?': 1488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case '.': 1498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case '*': 1508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case '+': 1518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case ',': 1528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project fprintf( stderr, "\\%c", 1538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project yylval ); 1548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project break; 1558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project default: 1578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if ( ! isascii( yylval ) || 1588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ! isprint( yylval ) ) 1598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project fprintf( stderr, 1608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project "\\%.3o", 1618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project (unsigned int) yylval ); 1628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project else 1638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project (void) putc( yylval, 1648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project stderr ); 1658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project break; 1668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 1678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project break; 1698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case NUMBER: 1718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project fprintf( stderr, "%d", yylval ); 1728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project break; 1738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case PREVCCL: 1758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project fprintf( stderr, "[%d]", yylval ); 1768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project break; 1778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case EOF_OP: 1798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project fprintf( stderr, "<<EOF>>" ); 1808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project break; 1818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case OPTION_OP: 1838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project fprintf( stderr, "%s ", yytext ); 1848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project break; 1858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case OPT_OUTFILE: 1878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case OPT_PREFIX: 1888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CCE_ALNUM: 1898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CCE_ALPHA: 1908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CCE_BLANK: 1918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CCE_CNTRL: 1928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CCE_DIGIT: 1938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CCE_GRAPH: 1948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CCE_LOWER: 1958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CCE_PRINT: 1968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CCE_PUNCT: 1978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CCE_SPACE: 1988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CCE_UPPER: 1998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case CCE_XDIGIT: 2008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project fprintf( stderr, "%s", yytext ); 2018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project break; 2028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case 0: 2048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project fprintf( stderr, _( "End Marker\n" ) ); 2058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project break; 2068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project default: 2088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project fprintf( stderr, 2098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project _( "*Something Weird* - tok: %d val: %d\n" ), 2108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project toktype, yylval ); 2118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project break; 2128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 2138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 2148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return toktype; 2168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 217