本文整理汇总了C++中pANTLR3_STRING类的典型用法代码示例。如果您正苦于以下问题:C++ pANTLR3_STRING类的具体用法?C++ pANTLR3_STRING怎么用?C++ pANTLR3_STRING使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了pANTLR3_STRING类的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: defineDotEdges
static void
defineDotEdges(pANTLR3_BASE_TREE_ADAPTOR adaptor, void * t, pANTLR3_STRING dotSpec)
{
// How many nodes are we talking about?
//
int nCount;
int i;
if (t == NULL)
{
// No tree, so do nothing
//
return;
}
// Count the nodes
//
nCount = adaptor->getChildCount(adaptor, t);
if (nCount == 0)
{
// This will already have been included as a child of another node
// so there is nothing to add.
//
return;
}
// For each child, define an edge from this parent, then process
// and children of this child in the same way
//
for (i=0; i<nCount; i++)
{
pANTLR3_BASE_TREE child;
char buff[128];
// Next child
//
child = adaptor->getChild(adaptor, t, i);
// Create the edge relation
//
sprintf(buff, "\t\tn%p -> n%p\t\t// ", t, child);
dotSpec->append8(dotSpec, buff);
// Document the relationship
//
dotSpec->appendS(dotSpec, adaptor->getText(adaptor, t));
dotSpec->append8(dotSpec, " -> ");
dotSpec->appendS(dotSpec, adaptor->getText(adaptor, child));
dotSpec->append8(dotSpec, "\n");
// Define edges for this child
//
defineDotEdges(adaptor, child, dotSpec);
}
// Done
//
return;
}
开发者ID:aslakhellesoy,项目名称:antlr-3,代码行数:60,代码来源:antlr3basetreeadaptor.c
示例2: toStringWork
static void
toStringWork (pANTLR3_TREE_NODE_STREAM tns, pANTLR3_BASE_TREE p, pANTLR3_BASE_TREE stop, pANTLR3_STRING buf)
{
ANTLR3_UINT32 n;
ANTLR3_UINT32 c;
if (!p->isNilNode(p) )
{
pANTLR3_STRING text;
text = p->toString(p);
if (text == NULL)
{
text = tns->ctns->stringFactory->newRaw(tns->ctns->stringFactory);
text->addc (text, ' ');
text->addi (text, p->getType(p));
}
buf->appendS(buf, text);
}
if (p == stop)
{
return; /* Finished */
}
n = p->getChildCount(p);
if (n > 0 && ! p->isNilNode(p) )
{
buf->addc (buf, ' ');
buf->addi (buf, ANTLR3_TOKEN_DOWN);
}
for (c = 0; c<n ; c++)
{
pANTLR3_BASE_TREE child;
child = p->getChild(p, c);
tns->toStringWork(tns, child, stop, buf);
}
if (n > 0 && ! p->isNilNode(p) )
{
buf->addc (buf, ' ');
buf->addi (buf, ANTLR3_TOKEN_UP);
}
}
开发者ID:cctbx,项目名称:cctbx-playground,代码行数:51,代码来源:antlr3commontreenodestream.c
示例3:
static pANTLR3_UINT8
insert8 (pANTLR3_STRING string, ANTLR3_UINT32 point, const char * newbit)
{
ANTLR3_UINT32 len;
if (point >= string->len)
{
return string->append(string, newbit);
}
len = (ANTLR3_UINT32)strlen(newbit);
if (len == 0)
{
return string->chars;
}
if (string->size < (string->len + len + 1))
{
string->chars = (pANTLR3_UINT8) ANTLR3_REALLOC((void *)string->chars, (ANTLR3_UINT32)(string->len + len + 1));
string->size = string->len + len + 1;
}
/* Move the characters we are inserting before, including the delimiter
*/
ANTLR3_MEMMOVE((void *)(string->chars + point + len), (void *)(string->chars + point), (ANTLR3_UINT32)(string->len - point + 1));
/* Note we copy the exact number of bytes
*/
ANTLR3_MEMMOVE((void *)(string->chars + point), newbit, (ANTLR3_UINT32)(len));
string->len += len;
return string->chars;
}
开发者ID:aopui,项目名称:antlr,代码行数:35,代码来源:antlr3string.c
示例4: insertiUTF16
static pANTLR3_UINT8
insertiUTF16 (pANTLR3_STRING string, ANTLR3_UINT32 point, ANTLR3_INT32 i)
{
ANTLR3_UINT8 newbit[32];
sprintf((char *)newbit, "%d", i);
return string->insert8(string, point, (const char *)newbit);
}
开发者ID:aopui,项目名称:antlr,代码行数:8,代码来源:antlr3string.c
示例5: sprintf
static pANTLR3_UINT8
addiUTF16 (pANTLR3_STRING string, ANTLR3_INT32 i)
{
ANTLR3_UINT8 newbit[32];
sprintf((char *)newbit, "%d", i);
return string->append8(string, (const char *)newbit);
}
开发者ID:aopui,项目名称:antlr,代码行数:9,代码来源:antlr3string.c
示例6: compareS
/* Function that compares the text of a string with the supplied string
* (which is assumed to be in the same encoding as the string itself) and returns a result
* a la strcmp()
*/
static ANTLR3_UINT32
compareS (pANTLR3_STRING string, pANTLR3_STRING compStr)
{
return string->compare(string, (const char *)compStr->chars);
}
开发者ID:aopui,项目名称:antlr,代码行数:9,代码来源:antlr3string.c
示例7: defineDotEdges
static void
defineDotEdges(pANTLR3_BASE_TREE_ADAPTOR adaptor, void * t, pANTLR3_STRING dotSpec)
{
// How many nodes are we talking about?
//
int nCount;
int i;
if (t == NULL)
{
// No tree, so do nothing
//
return;
}
// Count the nodes
//
nCount = adaptor->getChildCount(adaptor, t);
if (nCount == 0)
{
// This will already have been included as a child of another node
// so there is nothing to add.
//
return;
}
// For each child, define an edge from this parent, then process
// and children of this child in the same way
//
for (i=0; i<nCount; i++)
{
pANTLR3_BASE_TREE child;
char buff[128];
pANTLR3_STRING text;
int j;
// Next child
//
child = (pANTLR3_BASE_TREE)adaptor->getChild(adaptor, t, i);
// Create the edge relation
//
sprintf(buff, "\t\tn%p -> n%p\t\t// ", t, child);
dotSpec->append8(dotSpec, buff);
// Document the relationship
//
text = adaptor->getText(adaptor, t);
for (j = 0; j < (ANTLR3_INT32)(text->len); j++)
{
switch(text->charAt(text, j))
{
case '"':
dotSpec->append8(dotSpec, "\\\"");
break;
case '\n':
dotSpec->append8(dotSpec, "\\n");
break;
case '\r':
dotSpec->append8(dotSpec, "\\r");
break;
default:
dotSpec->addc(dotSpec, text->charAt(text, j));
break;
}
}
dotSpec->append8(dotSpec, " -> ");
text = adaptor->getText(adaptor, child);
for (j = 0; j < (ANTLR3_INT32)(text->len); j++)
{
switch(text->charAt(text, j))
{
case '"':
dotSpec->append8(dotSpec, "\\\"");
break;
case '\n':
dotSpec->append8(dotSpec, "\\n");
break;
case '\r':
dotSpec->append8(dotSpec, "\\r");
break;
default:
//.........这里部分代码省略.........
开发者ID:Daniel1892,项目名称:tora,代码行数:101,代码来源:antlr3basetreeadaptor.c
示例8: defineDotNodes
static void
defineDotNodes(pANTLR3_BASE_TREE_ADAPTOR adaptor, void * t, pANTLR3_STRING dotSpec )
{
// How many nodes are we talking about?
//
int nCount;
int i;
pANTLR3_BASE_TREE child;
char buff[64];
pANTLR3_STRING text;
int j;
// Count the nodes
//
nCount = adaptor->getChildCount(adaptor, t);
if (nCount == 0)
{
// This will already have been included as a child of another node
// so there is nothing to add.
//
return;
}
// For each child of the current tree, define a node using the
// memory address of the node to name it
//
for (i = 0; i<nCount; i++)
{
// Pick up a pointer for the child
//
child = (pANTLR3_BASE_TREE)adaptor->getChild(adaptor, t, i);
// Name the node
//
sprintf(buff, "\tn%p[label=\"", child);
dotSpec->append8(dotSpec, buff);
text = adaptor->getText(adaptor, child);
for (j = 0; j < (ANTLR3_INT32)(text->len); j++)
{
switch(text->charAt(text, j))
{
case '"':
dotSpec->append8(dotSpec, "\\\"");
break;
case '\n':
dotSpec->append8(dotSpec, "\\n");
break;
case '\r':
dotSpec->append8(dotSpec, "\\r");
break;
default:
dotSpec->addc(dotSpec, text->charAt(text, j));
break;
}
}
dotSpec->append8(dotSpec, "\"]\n");
// And now define the children of this child (if any)
//
defineDotNodes(adaptor, child, dotSpec);
}
// Done
//
return;
}
开发者ID:Daniel1892,项目名称:tora,代码行数:79,代码来源:antlr3basetreeadaptor.c
注:本文中的pANTLR3_STRING类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论