*** empty log message ***
This commit is contained in:
parent
023d391d86
commit
050196400e
@ -15,3 +15,6 @@ EXPORTS
|
|||||||
|
|
||||||
xp_awk_parse
|
xp_awk_parse
|
||||||
xp_awk_run
|
xp_awk_run
|
||||||
|
|
||||||
|
xp_awk_strtolong
|
||||||
|
xp_awk_strtoreal
|
||||||
|
@ -113,6 +113,10 @@ SOURCE=.\map.c
|
|||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=.\misc.c
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=.\parse.c
|
SOURCE=.\parse.c
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
@ -136,10 +140,6 @@ SOURCE=.\tree.c
|
|||||||
SOURCE=.\val.c
|
SOURCE=.\val.c
|
||||||
# End Source File
|
# End Source File
|
||||||
# End Group
|
# End Group
|
||||||
#
|
|
||||||
SOURCE=.\misc.c
|
|
||||||
# End Source File
|
|
||||||
# End Group
|
|
||||||
# Begin Group "Header Files"
|
# Begin Group "Header Files"
|
||||||
|
|
||||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: misc.c,v 1.1 2006-04-04 16:03:14 bacon Exp $
|
* $Id: misc.c,v 1.2 2006-04-04 16:22:01 bacon Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <xp/awk/awk_i.h>
|
#include <xp/awk/awk_i.h>
|
||||||
@ -35,21 +35,27 @@ xp_long_t xp_awk_strtolong (const xp_char_t* str, int base)
|
|||||||
if (*p == XP_CHAR('0'))
|
if (*p == XP_CHAR('0'))
|
||||||
{
|
{
|
||||||
p++;
|
p++;
|
||||||
if (*p == XP_CHAR('x'))
|
if (*p == XP_CHAR('x') || *p == XP_CHAR('X'))
|
||||||
{
|
{
|
||||||
p++; base = 16;
|
p++; base = 16;
|
||||||
}
|
}
|
||||||
|
else if (*p == XP_CHAR('b') || *p == XP_CHAR('B'))
|
||||||
|
{
|
||||||
|
p++; base = 2;
|
||||||
|
}
|
||||||
else base = 8;
|
else base = 8;
|
||||||
}
|
}
|
||||||
else base = 10;
|
else base = 10;
|
||||||
}
|
}
|
||||||
else if (base == 16)
|
else if (base == 16)
|
||||||
{
|
{
|
||||||
// skip a leading "0x" from hex numbers.
|
if (*p == XP_CHAR('0') &&
|
||||||
if ((*p == XP_CHAR('0')) && (*(p+1) == XP_CHAR('x')))
|
(*(p+1) == XP_CHAR('x') || *(p+1) == XP_CHAR('X'))) p += 2;
|
||||||
{
|
}
|
||||||
p += 2;
|
else if (base == 2)
|
||||||
}
|
{
|
||||||
|
if (*p == XP_CHAR('0') &&
|
||||||
|
(*(p+1) == XP_CHAR('b') || *(p+1) == XP_CHAR('B'))) p += 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
while (*p != XP_CHAR('\0'))
|
while (*p != XP_CHAR('\0'))
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: parse.c,v 1.70 2006-04-04 16:03:14 bacon Exp $
|
* $Id: parse.c,v 1.71 2006-04-04 16:22:01 bacon Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <xp/awk/awk_i.h>
|
#include <xp/awk/awk_i.h>
|
||||||
@ -2460,7 +2460,18 @@ static int __get_number (xp_awk_t* awk)
|
|||||||
GET_CHAR_TO (awk, c);
|
GET_CHAR_TO (awk, c);
|
||||||
} while (xp_isxdigit(c));
|
} while (xp_isxdigit(c));
|
||||||
|
|
||||||
// TODO: return hexadecimal number...
|
return 0;
|
||||||
|
}
|
||||||
|
else if (c == XP_CHAR('b') || c == XP_CHAR('B'))
|
||||||
|
{
|
||||||
|
/* binary number */
|
||||||
|
do
|
||||||
|
{
|
||||||
|
ADD_TOKEN_CHAR (awk, c);
|
||||||
|
GET_CHAR_TO (awk, c);
|
||||||
|
} while (c == XP_CHAR('0') || c == XP_CHAR('1'));
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
else if (c != '.')
|
else if (c != '.')
|
||||||
{
|
{
|
||||||
@ -2469,9 +2480,9 @@ static int __get_number (xp_awk_t* awk)
|
|||||||
{
|
{
|
||||||
ADD_TOKEN_CHAR (awk, c);
|
ADD_TOKEN_CHAR (awk, c);
|
||||||
GET_CHAR_TO (awk, c);
|
GET_CHAR_TO (awk, c);
|
||||||
} while (c >= XP_CHAR('0') || c <= XP_CHAR('7'));
|
} while (c >= XP_CHAR('0') && c <= XP_CHAR('7'));
|
||||||
|
|
||||||
// TOOD: return octal number
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user