本文整理汇总了C++中token类的典型用法代码示例。如果您正苦于以下问题:C++ token类的具体用法?C++ token怎么用?C++ token使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了token类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: expandVariable
void Foam::primitiveEntry::append
(
const token& currToken,
const dictionary& dict,
Istream& is
)
{
if (currToken.isWord())
{
const word& w = currToken.wordToken();
if
(
w.size() == 1
|| (
!(w[0] == '$' && expandVariable(w, dict))
&& !(w[0] == '#' && expandFunction(w, dict, is))
)
)
{
newElmt(tokenIndex()++) = currToken;
}
}
else
{
newElmt(tokenIndex()++) = currToken;
}
}
开发者ID:Brzous,项目名称:WindFOAM,代码行数:28,代码来源:primitiveEntryIO.C
示例2: get_token
/*
* Returns the contents of the lexer as a token
*/
bool lexer::get_token(token &tok) {
// set appropriate values
tok.set_text(text);
tok.set_type(type);
return true;
}
开发者ID:majestic53,项目名称:Cli-Calc,代码行数:10,代码来源:lexer.cpp
示例3: intersect
void intersect (basic_charset &rhs_, basic_charset &overlap_)
{
_token.intersect (rhs_._token, overlap_._token);
if (!overlap_._token.empty ())
{
typename index_set::const_iterator iter_ = _index_set.begin ();
typename index_set::const_iterator end_ = _index_set.end ();
for (; iter_ != end_; ++iter_)
{
overlap_._index_set.insert (*iter_);
}
iter_ = rhs_._index_set.begin ();
end_ = rhs_._index_set.end ();
for (; iter_ != end_; ++iter_)
{
overlap_._index_set.insert (*iter_);
}
if (_token.empty ())
{
_index_set.clear ();
}
if (rhs_._token.empty ())
{
rhs_._index_set.clear ();
}
}
}
开发者ID:BioinformaticsArchive,项目名称:MulRFRepo,代码行数:33,代码来源:charset.hpp
示例4: opPriority
int
opPriority(token t)
{
if ( (binOP_Table.end() != binOP_Table.find(t.Tok())) )
return binOP_Table[t.Tok()];
else // this will stop OpPrecedence parsing once we hit a
return -1; // non-op while evaluating InfixEpxr
}
开发者ID:RalfMBecker,项目名称:decaf,代码行数:8,代码来源:tables.cpp
示例5: to_string
bool token::operator == (const token& rhs) const
{
if (this == &rhs)
return true;
if (valid() && rhs.valid())
return to_string() == rhs.to_string();
else
return false;
}
开发者ID:darkangel-ua,项目名称:hammer,代码行数:10,代码来源:token.cpp
示例6: parse
virtual parse_result parse( string::const_iterator& i,
string::const_iterator e,
token& tok ) const
{
string::const_iterator j = i;
if ( *j != '&' && *j != '+' ) return failed; ++j;
while ( j < e && ( *j == '.' || *j == '-' || isalnum(*j) ) ) ++j;
tok.assign(i, j); tok.type( tok_types::pn_lit ); i = j;
return done;
}
开发者ID:brucegentles,项目名称:ringinglib,代码行数:10,代码来源:parser.cpp
示例7: get_root_contents
/*
* Returns the contents at the root
*/
bool syn_tree::get_root_contents(token &tok) {
// check that root token exists
if(!root)
return false;
// set the text & type
tok.set_text(root->get_text());
tok.set_type(root->get_type());
return true;
}
开发者ID:majestic53,项目名称:Cli-Calc,代码行数:14,代码来源:syn_tree.cpp
示例8:
zstring::zstring(const token& tok)
: _buf(0)
, _pool(0)
{
if(tok.len() == 0)
_zptr = _zend = nullstring;
else {
_zptr = tok.ptr();
_zend = tok.ptre() - 1;
}
}
开发者ID:cyrilgramblicka,项目名称:X264RecorderPlugin,代码行数:11,代码来源:str-win.cpp
示例9: set_contents
/*
* Set the contents of the current token
*/
bool syn_tree::set_contents(token &tok) {
// make sure current token exists
if(!cur)
return false;
// set current token contents
cur->set_text(tok.get_text());
cur->set_type(tok.get_type());
return true;
}
开发者ID:majestic53,项目名称:Cli-Calc,代码行数:14,代码来源:syn_tree.cpp
示例10: get_contents
/*
* Returns contents at current token
*/
bool syn_tree::get_contents(token &tok) {
// check that current token exists
if(!cur)
return false;
// set the text & type
tok.set_text(cur->get_text());
tok.set_type(cur->get_type());
return true;
}
开发者ID:majestic53,项目名称:Cli-Calc,代码行数:14,代码来源:syn_tree.cpp
示例11: is_greater_precedence
static bool is_greater_precedence(const token &one, const token &two) {
size_t one_id = one.first_matching_sym_op_fn_id();
size_t two_id = two.first_matching_sym_op_fn_id();
typename Fn_Table::fn_info one_info = Fn_Table::get_info(one_id);
typename Fn_Table::fn_info two_info = Fn_Table::get_info(two_id);
bool one_is_left_assoc = one_info.is_left_assoc();
size_t one_precedence = one_info.precedence();
size_t two_precedence = two_info.precedence();
return ((one_is_left_assoc && (one_precedence >= two_precedence))
|| (!one_is_left_assoc && (one_precedence > two_precedence)));
}
开发者ID:barrbrain,项目名称:r17,代码行数:12,代码来源:shunting_yard.hpp
示例12: fprintf
void dotfile_visitor::format_node(abstract_node *node, const char *name, const token &tok)
{
if (!m_connectTo)
{
if (tok.type() == token_types::STRING_LITERAL)
fprintf(m_file, "\tptr%p [label=\"[%s]\\n[%s]\\n\\\"%.*s\\\"\"];\n", node, name, token_types::names[tok.type()], tok.length() - 2, tok.text() + 1);
else if (tok.text())
fprintf(m_file, "\tptr%p [label=\"[%s]\\n[%s]\\n%.*s\"];\n", node, name, token_types::names[tok.type()], tok.length(), tok.text());
else
format_node(node, name);
}
}
开发者ID:ImOnALampshade,项目名称:brandy,代码行数:12,代码来源:dotfilevisitor.cpp
示例13: new_const
string symbol_table::new_const(token tkconst)
{
string type = type_of(tkconst);
auto ent = consts_.find(type+tkconst.text());
if (ent != consts_.end()) {
return ent->second.place();
}
const_desc desc(tkconst);
consts_[type+tkconst.text()] = desc;
return desc.place();
}
开发者ID:Aetf,项目名称:ACCompiler,代码行数:12,代码来源:symbol_table.cpp
示例14: hash
static inline token hash(const std::string &pw, token const& salt)
{
token result;
if(::libscrypt_scrypt(
(const uint8_t*)pw.data(), pw.size(),
salt.data(), salt.size(),
SCRYPT_N, SCRYPT_r, SCRYPT_p,
result.data(), result.size()
) == -1)
throw std::runtime_error("Incapable of hashing plaintext");
return result;
}
开发者ID:Supermarx,项目名称:common,代码行数:13,代码来源:session_operations.hpp
示例15: get_size
/*
* Sets the contents of the specified child token of current token
*/
bool syn_tree::set_child_contents(token &tok, unsigned int index) {
// check to make sure child token exists
if(!cur
|| !get_size()
|| index >= get_size())
return false;
// set contents
token *child = cur->get_child(index);
child->set_text(tok.get_text());
child->set_type(tok.get_type());
return true;
}
开发者ID:majestic53,项目名称:Cli-Calc,代码行数:17,代码来源:syn_tree.cpp
示例16: parse_operator
int parse_operator(string &str, string::iterator i_iter, token &output)
{
bool is_error = false;
output.clean();
if(i_iter != str.end())
{
switch(*i_iter)
{
case '+': output._typeid = OPER_ADD; break;
case '-': output._typeid = OPER_SUB; break;
case '*': output._typeid = OPER_MULT;break;
case '/': output._typeid = OPER_DIV; break;
case '=': output._typeid = OPER_EQU; break;
case '(': output._typeid = OPER_LPAR;break;
case '{': output._typeid = OPER_LPAR;break;
case ')': output._typeid = OPER_RPAR;break;
case '}': output._typeid = OPER_RPAR;break;
case '!': if((i_iter+1) != str.end() && *(i_iter + 1) == '=') output._typeid = OPER_NOTEQ;break;
default: is_error = true; break;
}
}else{
is_error = true;
}
if(is_error){
return -1;
}else if(output._typeid != OPER_NOTEQ){
output.elemt = *i_iter;
return 1;
}else{
output.elemt = "!=";
return 2;
}
}
开发者ID:Kingwl,项目名称:lexical_analysis,代码行数:33,代码来源:lexical_analysis.cpp
示例17: parse_string
int parse_string(string &str, string::iterator i_iter, token& output)
{
const int s_input = 0;
const int s_exit = 1;
const int s_note = 2;
output.clean();
bool flag = false;
bool is_error = false;
vector <char> o;
string::iterator iter = i_iter;
int state = s_input;
if(*iter != '"'){
state = s_exit;
}else{
++iter;
}
while(flag == false)
{
switch(state)
{
case s_input:
if(iter == str.end()){
state = s_exit;
}else if(*iter == '\\'){
state = s_note;
}else if(*iter == '"'){
state = s_exit;
}else{
o.push_back(*iter++);
}
break;
case s_exit:
if(iter == i_iter) is_error = true;
flag = true;
break;
case s_note:
if((iter + 1) != str.end() && *(iter + 1) == '"'){
o.push_back(*(iter + 1 ));
iter += 2;
}else if((iter + 1) != str.end() && *(iter + 1) == 'n'){
o.push_back('\n');
iter += 2;
}else if((iter + 1) != str.end() && *(iter + 1) == 't'){
o.push_back('\t');
iter += 2;
}
state = s_input;
break;
}
}
if(is_error)
{
return -1;
}else{
output.elemt = string(o.begin(), o.end());
output._typeid = TYPE_STR;
return iter - i_iter;
}
}
开发者ID:Kingwl,项目名称:lexical_analysis,代码行数:60,代码来源:lexical_analysis.cpp
示例18: expandVariable
void Foam::primitiveEntry::append
(
const token& currToken,
const dictionary& dict,
Istream& is
)
{
if (currToken.isWord())
{
const word& w = currToken.wordToken();
if
(
disableFunctionEntries
|| w.size() == 1
|| (
!(w[0] == '$' && expandVariable(w, dict))
&& !(w[0] == '#' && expandFunction(w, dict, is))
)
)
{
newElmt(tokenIndex()++) = currToken;
}
}
else if (currToken.isVariable())
{
const string& w = currToken.stringToken();
if
(
disableFunctionEntries
|| w.size() <= 3
|| !(
w[0] == '$'
&& w[1] == token::BEGIN_BLOCK
&& expandVariable(w, dict)
)
)
{
newElmt(tokenIndex()++) = currToken;
}
}
else
{
newElmt(tokenIndex()++) = currToken;
}
}
开发者ID:Kiiree,项目名称:CONSELFcae-dev,代码行数:47,代码来源:primitiveEntryIO.C
示例19: myToken
parsetree::parsetree(const token &t) // {{{
: myToken(t),
myType(t.Name()),
myCase("_TOKEN"),
is_token(true)
{
myContent.clear();
} // }}}
开发者ID:lassenielsen,项目名称:libdpl,代码行数:8,代码来源:parsetree.cpp
示例20: comparison_interpret
Condition DB_Set::comparison_interpret(token& t, vector<Table*> r)
{
if(t.get_value() == "OP")
{
string left, right;
if(t[0][0].get_type() == identifier) left = t[0][0].get_value();
else left = t[0][0][0].get_value();
if(t[2][0].get_type() == identifier) right = t[2][0].get_value();
else right = t[2][0][0].get_value();
Condition_Sing op(left, t[1].get_value(), right);
Condition c(op);
return c;
}
else if(t.get_value() == "CONDITION")
return condition_interpret(t[0], r);
return condition_interpret(t[0],r);
}
开发者ID:jwaang,项目名称:sql-db-engine,代码行数:17,代码来源:DB_Set.cpp
注:本文中的token类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论