in velocity-tools-generic/src/main/java/org/apache/velocity/tools/generic/MarkupTool.java [124:159]
protected Tag parse(String definition)
{
StringBuilder store = new StringBuilder();
Tag tag = new Tag(this);
Mode mode = Mode.NAME;
for (int i=0; i < definition.length(); i++)
{
char c = definition.charAt(i);
if (c == '#')
{
store = clear(mode, tag, store, true);
mode = Mode.ID;
}
else if (c == '.')
{
store = clear(mode, tag, store, true);
mode = Mode.CLASS;
}
else if (c == '[')
{
store = clear(mode, tag, store, true);
mode = Mode.ATTR;
}
else if (c == ']')
{
store = clear(mode, tag, store, true);
mode = Mode.NAME;
}
else
{
store.append(c);
}
}
clear(mode, tag, store, false);
return tag;
}