1N/A/*********************************************************************** 1N/A* This software is part of the ast package * 1N/A* Copyright (c) 1985-2011 AT&T Intellectual Property * 1N/A* and is licensed under the * 1N/A* Common Public License, Version 1.0 * 1N/A* by AT&T Intellectual Property * 1N/A* A copy of the License is available at * 1N/A* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) * 1N/A* Information and Software Systems Research * 1N/A* Glenn Fowler <gsf@research.att.com> * 1N/A* David Korn <dgk@research.att.com> * 1N/A* Phong Vo <kpv@research.att.com> * 1N/A***********************************************************************/ 1N/A * return the next character in the string s 1N/A * \ character constants are expanded 1N/A * *p is updated to point to the next character in s 1N/A * *m is 1 if return value is wide 1N/A register const char* q;
1N/A case '0':
case '1':
case '2':
case '3':
1N/A case '4':
case '5':
case '6':
case '7':
1N/A case '0':
case '1':
case '2':
case '3':
1N/A case '4':
case '5':
case '6':
case '7':
1N/A c = (c <<
3) + *s++ -
'0';
1N/A case 'c':
/*DEPRECATED*/ 1N/A case 'e':
/*DEPRECATED*/ 1N/A if (q = c ==
'u' ? (s +
4) : c ==
'U' ? (s +
8) : (
char*)0)
1N/A while (!e || !q || s < q)
1N/A case 'a':
case 'b':
case 'c':
case 'd':
case 'e':
case 'f':
1N/A c = (c <<
4) + *s++ -
'a' +
10;
1N/A case 'A':
case 'B':
case 'C':
case 'D':
case 'E':
case 'F':
1N/A c = (c <<
4) + *s++ -
'A' +
10;
1N/A case '0':
case '1':
case '2':
case '3':
case '4':
1N/A case '5':
case '6':
case '7':
case '8':
case '9':
1N/A c = (c <<
4) + *s++ -
'0';