tesseract v5.3.3.20231005
cpp.ast.AstBuilder Class Reference
Inheritance diagram for cpp.ast.AstBuilder:

Public Member Functions

def __init__ (self, token_stream, filename, in_class='', visibility=None, namespace_stack=[])
 
def HandleError (self, msg, token)
 
def Generate (self)
 
def GetScope (self)
 
def GetName (self, seq=None)
 
def GetMethod (self, modifiers, templated_types)
 
def handle_bool (self)
 
def handle_char (self)
 
def handle_int (self)
 
def handle_long (self)
 
def handle_short (self)
 
def handle_double (self)
 
def handle_float (self)
 
def handle_void (self)
 
def handle_wchar_t (self)
 
def handle_unsigned (self)
 
def handle_signed (self)
 
def handle_struct (self)
 
def handle_union (self)
 
def handle_enum (self)
 
def handle_auto (self)
 
def handle_register (self)
 
def handle_const (self)
 
def handle_inline (self)
 
def handle_extern (self)
 
def handle_static (self)
 
def handle_virtual (self)
 
def handle_volatile (self)
 
def handle_mutable (self)
 
def handle_public (self)
 
def handle_protected (self)
 
def handle_private (self)
 
def handle_friend (self)
 
def handle_static_cast (self)
 
def handle_const_cast (self)
 
def handle_dynamic_cast (self)
 
def handle_reinterpret_cast (self)
 
def handle_new (self)
 
def handle_delete (self)
 
def handle_typedef (self)
 
def handle_typeid (self)
 
def handle_typename (self)
 
def handle_template (self)
 
def handle_true (self)
 
def handle_false (self)
 
def handle_asm (self)
 
def handle_class (self)
 
def handle_namespace (self)
 
def handle_using (self)
 
def handle_explicit (self)
 
def handle_this (self)
 
def handle_operator (self)
 
def handle_sizeof (self)
 
def handle_case (self)
 
def handle_switch (self)
 
def handle_default (self)
 
def handle_if (self)
 
def handle_else (self)
 
def handle_return (self)
 
def handle_goto (self)
 
def handle_try (self)
 
def handle_catch (self)
 
def handle_throw (self)
 
def handle_while (self)
 
def handle_do (self)
 
def handle_for (self)
 
def handle_break (self)
 
def handle_continue (self)
 

Public Attributes

 tokens
 
 filename
 
 token_queue
 
 namespace_stack
 
 in_class
 
 in_class_name_only
 
 visibility
 
 in_function
 
 current_token
 
 converter
 

Detailed Description

Definition at line 686 of file ast.py.

Constructor & Destructor Documentation

◆ __init__()

def cpp.ast.AstBuilder.__init__ (   self,
  token_stream,
  filename,
  in_class = '',
  visibility = None,
  namespace_stack = [] 
)

Definition at line 687 of file ast.py.

688 namespace_stack=[]):
689 self.tokens = token_stream
690 self.filename = filename
691 # TODO(nnorwitz): use a better data structure (deque) for the queue.
692 # Switching directions of the "queue" improved perf by about 25%.
693 # Using a deque should be even better since we access from both sides.
694 self.token_queue = []
695 self.namespace_stack = namespace_stack[:]
696 self.in_class = in_class
697 if in_class is None:
698 self.in_class_name_only = None
699 else:
700 self.in_class_name_only = in_class.split('::')[-1]
701 self.visibility = visibility
702 self.in_function = False
703 self.current_token = None
704 # Keep the state whether we are currently handling a typedef or not.
705 self._handling_typedef = False
706
707 self.converter = TypeConverter(self.namespace_stack)
708

Member Function Documentation

◆ Generate()

def cpp.ast.AstBuilder.Generate (   self)

Definition at line 714 of file ast.py.

714 def Generate(self):
715 while 1:
716 token = self._GetNextToken()
717 if not token:
718 break
719
720 # Get the next token.
721 self.current_token = token
722
723 # Dispatch on the next token type.
724 if token.token_type == _INTERNAL_TOKEN:
725 if token.name == _NAMESPACE_POP:
726 self.namespace_stack.pop()
727 continue
728
729 try:
730 result = self._GenerateOne(token)
731 if result is not None:
732 yield result
733 except:
734 self.HandleError('exception', token)
735 raise
736
LIST pop(LIST list)
Definition: oldlist.cpp:166

◆ GetMethod()

def cpp.ast.AstBuilder.GetMethod (   self,
  modifiers,
  templated_types 
)

Definition at line 993 of file ast.py.

993 def GetMethod(self, modifiers, templated_types):
994 return_type_and_name = self._GetTokensUpTo(tokenize.SYNTAX, '(')
995 assert len(return_type_and_name) >= 1
996 return self._GetMethod(return_type_and_name, modifiers, templated_types,
997 False)
998

◆ GetName()

def cpp.ast.AstBuilder.GetName (   self,
  seq = None 
)
Returns ([tokens], next_token_info).

Definition at line 968 of file ast.py.

968 def GetName(self, seq=None):
969 """Returns ([tokens], next_token_info)."""
970 GetNextToken = self._GetNextToken
971 if seq is not None:
972 it = iter(seq)
973 GetNextToken = lambda: next(it)
974 next_token = GetNextToken()
975 tokens = []
976 last_token_was_name = False
977 while (next_token.token_type == tokenize.NAME or
978 (next_token.token_type == tokenize.SYNTAX and
979 next_token.name in ('::', '<'))):
980 # Two NAMEs in a row means the identifier should terminate.
981 # It's probably some sort of variable declaration.
982 if last_token_was_name and next_token.token_type == tokenize.NAME:
983 break
984 last_token_was_name = next_token.token_type == tokenize.NAME
985 tokens.append(next_token)
986 # Handle templated names.
987 if next_token.name == '<':
988 tokens.extend(self._GetMatchingChar('<', '>', GetNextToken))
989 last_token_was_name = True
990 next_token = GetNextToken()
991 return tokens, next_token
992
def next(obj)
Definition: ast.py:56

◆ GetScope()

def cpp.ast.AstBuilder.GetScope (   self)

Definition at line 939 of file ast.py.

939 def GetScope(self):
940 return self._GetMatchingChar('{', '}')
941

◆ handle_asm()

def cpp.ast.AstBuilder.handle_asm (   self)

Definition at line 1492 of file ast.py.

1492 def handle_asm(self):
1493 pass # Not needed yet.
1494

◆ handle_auto()

def cpp.ast.AstBuilder.handle_auto (   self)

Definition at line 1309 of file ast.py.

1309 def handle_auto(self):
1310 # TODO(nnorwitz): warn about using auto? Probably not since it
1311 # will be reclaimed and useful for C++0x.
1312 pass
1313

◆ handle_bool()

def cpp.ast.AstBuilder.handle_bool (   self)

Definition at line 1200 of file ast.py.

1200 def handle_bool(self):
1201 pass
1202

◆ handle_break()

def cpp.ast.AstBuilder.handle_break (   self)

Definition at line 1696 of file ast.py.

1696 def handle_break(self):
1697 self._IgnoreUpTo(tokenize.SYNTAX, ';')
1698

◆ handle_case()

def cpp.ast.AstBuilder.handle_case (   self)

Definition at line 1650 of file ast.py.

1650 def handle_case(self):
1651 pass
1652

◆ handle_catch()

def cpp.ast.AstBuilder.handle_catch (   self)

Definition at line 1681 of file ast.py.

1681 def handle_catch(self):
1682 pass # Not needed yet.
1683

◆ handle_char()

def cpp.ast.AstBuilder.handle_char (   self)

Definition at line 1203 of file ast.py.

1203 def handle_char(self):
1204 pass
1205

◆ handle_class()

def cpp.ast.AstBuilder.handle_class (   self)

Definition at line 1495 of file ast.py.

1495 def handle_class(self):
1496 return self._GetClass(Class, VISIBILITY_PRIVATE, None)
1497

◆ handle_const()

def cpp.ast.AstBuilder.handle_const (   self)

Definition at line 1317 of file ast.py.

1317 def handle_const(self):
1318 pass
1319

◆ handle_const_cast()

def cpp.ast.AstBuilder.handle_const_cast (   self)

Definition at line 1373 of file ast.py.

1373 def handle_const_cast(self):
1374 pass
1375

◆ handle_continue()

def cpp.ast.AstBuilder.handle_continue (   self)

Definition at line 1699 of file ast.py.

1699 def handle_continue(self):
1700 self._IgnoreUpTo(tokenize.SYNTAX, ';')
1701
1702

◆ handle_default()

def cpp.ast.AstBuilder.handle_default (   self)

Definition at line 1656 of file ast.py.

1656 def handle_default(self):
1657 token = self._GetNextToken()
1658 assert token.token_type == tokenize.SYNTAX
1659 assert token.name == ':'
1660

◆ handle_delete()

def cpp.ast.AstBuilder.handle_delete (   self)

Definition at line 1385 of file ast.py.

1385 def handle_delete(self):
1386 tokens = self._GetTokensUpTo(tokenize.SYNTAX, ';')
1387 assert tokens
1388 return Delete(tokens[0].start, tokens[0].end, tokens)
1389

◆ handle_do()

def cpp.ast.AstBuilder.handle_do (   self)

Definition at line 1690 of file ast.py.

1690 def handle_do(self):
1691 pass
1692

◆ handle_double()

def cpp.ast.AstBuilder.handle_double (   self)

Definition at line 1215 of file ast.py.

1215 def handle_double(self):
1216 pass
1217

◆ handle_dynamic_cast()

def cpp.ast.AstBuilder.handle_dynamic_cast (   self)

Definition at line 1376 of file ast.py.

1376 def handle_dynamic_cast(self):
1377 pass
1378

◆ handle_else()

def cpp.ast.AstBuilder.handle_else (   self)

Definition at line 1664 of file ast.py.

1664 def handle_else(self):
1665 pass
1666

◆ handle_enum()

def cpp.ast.AstBuilder.handle_enum (   self)

Definition at line 1306 of file ast.py.

1306 def handle_enum(self):
1307 return self._GetNestedType(Enum)
1308

◆ handle_explicit()

def cpp.ast.AstBuilder.handle_explicit (   self)

Definition at line 1633 of file ast.py.

1633 def handle_explicit(self):
1634 assert self.in_class
1635 # Nothing much to do.
1636 # TODO(nnorwitz): maybe verify the method name == class name.
1637 # This must be a ctor.
1638 return self.GetMethod(FUNCTION_CTOR, None)
1639

◆ handle_extern()

def cpp.ast.AstBuilder.handle_extern (   self)

Definition at line 1323 of file ast.py.

1323 def handle_extern(self):
1324 pass
1325

◆ handle_false()

def cpp.ast.AstBuilder.handle_false (   self)

Definition at line 1489 of file ast.py.

1489 def handle_false(self):
1490 pass # Nothing to do.
1491

◆ handle_float()

def cpp.ast.AstBuilder.handle_float (   self)

Definition at line 1218 of file ast.py.

1218 def handle_float(self):
1219 pass
1220

◆ handle_for()

def cpp.ast.AstBuilder.handle_for (   self)

Definition at line 1693 of file ast.py.

1693 def handle_for(self):
1694 pass
1695

◆ handle_friend()

def cpp.ast.AstBuilder.handle_friend (   self)

Definition at line 1364 of file ast.py.

1364 def handle_friend(self):
1365 tokens = self._GetTokensUpTo(tokenize.SYNTAX, ';')
1366 assert tokens
1367 t0 = tokens[0]
1368 return Friend(t0.start, t0.end, tokens, self.namespace_stack)
1369

◆ handle_goto()

def cpp.ast.AstBuilder.handle_goto (   self)

Definition at line 1673 of file ast.py.

1673 def handle_goto(self):
1674 tokens = self._GetTokensUpTo(tokenize.SYNTAX, ';')
1675 assert len(tokens) == 1, str(tokens)
1676 return Goto(tokens[0].start, tokens[0].end, tokens[0].name)
1677

◆ handle_if()

def cpp.ast.AstBuilder.handle_if (   self)

Definition at line 1661 of file ast.py.

1661 def handle_if(self):
1662 pass
1663

◆ handle_inline()

def cpp.ast.AstBuilder.handle_inline (   self)

Definition at line 1320 of file ast.py.

1320 def handle_inline(self):
1321 pass
1322

◆ handle_int()

def cpp.ast.AstBuilder.handle_int (   self)

Definition at line 1206 of file ast.py.

1206 def handle_int(self):
1207 pass
1208

◆ handle_long()

def cpp.ast.AstBuilder.handle_long (   self)

Definition at line 1209 of file ast.py.

1209 def handle_long(self):
1210 pass
1211

◆ handle_mutable()

def cpp.ast.AstBuilder.handle_mutable (   self)

Definition at line 1349 of file ast.py.

1349 def handle_mutable(self):
1350 pass
1351

◆ handle_namespace()

def cpp.ast.AstBuilder.handle_namespace (   self)

Definition at line 1602 of file ast.py.

1602 def handle_namespace(self):
1603 # Support anonymous namespaces.
1604 name = None
1605 name_tokens, token = self.GetName()
1606 if name_tokens:
1607 name = ''.join([t.name for t in name_tokens])
1608 self.namespace_stack.append(name)
1609 assert token.token_type == tokenize.SYNTAX, token
1610 # Create an internal token that denotes when the namespace is complete.
1611 internal_token = tokenize.Token(_INTERNAL_TOKEN, _NAMESPACE_POP,
1612 None, None)
1613 internal_token.whence = token.whence
1614 if token.name == '=':
1615 # TODO(nnorwitz): handle aliasing namespaces.
1616 name, next_token = self.GetName()
1617 assert next_token.name == ';', next_token
1618 self._AddBackToken(internal_token)
1619 else:
1620 assert token.name == '{', token
1621 tokens = list(self.GetScope())
1622 # Replace the trailing } with the internal namespace pop token.
1623 tokens[-1] = internal_token
1624 # Handle namespace with nothing in it.
1625 self._AddBackTokens(tokens)
1626 return None
1627

◆ handle_new()

def cpp.ast.AstBuilder.handle_new (   self)

Definition at line 1382 of file ast.py.

1382 def handle_new(self):
1383 pass
1384

◆ handle_operator()

def cpp.ast.AstBuilder.handle_operator (   self)

Definition at line 1643 of file ast.py.

1643 def handle_operator(self):
1644 # Pull off the next token(s?) and make that part of the method name.
1645 pass
1646

◆ handle_private()

def cpp.ast.AstBuilder.handle_private (   self)

Definition at line 1360 of file ast.py.

1360 def handle_private(self):
1361 assert self.in_class
1362 self.visibility = VISIBILITY_PRIVATE
1363

◆ handle_protected()

def cpp.ast.AstBuilder.handle_protected (   self)

Definition at line 1356 of file ast.py.

1356 def handle_protected(self):
1357 assert self.in_class
1358 self.visibility = VISIBILITY_PROTECTED
1359

◆ handle_public()

def cpp.ast.AstBuilder.handle_public (   self)

Definition at line 1352 of file ast.py.

1352 def handle_public(self):
1353 assert self.in_class
1354 self.visibility = VISIBILITY_PUBLIC
1355

◆ handle_register()

def cpp.ast.AstBuilder.handle_register (   self)

Definition at line 1314 of file ast.py.

1314 def handle_register(self):
1315 pass
1316

◆ handle_reinterpret_cast()

def cpp.ast.AstBuilder.handle_reinterpret_cast (   self)

Definition at line 1379 of file ast.py.

1379 def handle_reinterpret_cast(self):
1380 pass
1381

◆ handle_return()

def cpp.ast.AstBuilder.handle_return (   self)

Definition at line 1667 of file ast.py.

1667 def handle_return(self):
1668 tokens = self._GetTokensUpTo(tokenize.SYNTAX, ';')
1669 if not tokens:
1670 return Return(self.current_token.start, self.current_token.end, None)
1671 return Return(tokens[0].start, tokens[0].end, tokens)
1672
internal::ReturnAction< R > Return(R value)

◆ handle_short()

def cpp.ast.AstBuilder.handle_short (   self)

Definition at line 1212 of file ast.py.

1212 def handle_short(self):
1213 pass
1214

◆ handle_signed()

def cpp.ast.AstBuilder.handle_signed (   self)

Definition at line 1230 of file ast.py.

1230 def handle_signed(self):
1231 pass
1232

◆ handle_sizeof()

def cpp.ast.AstBuilder.handle_sizeof (   self)

Definition at line 1647 of file ast.py.

1647 def handle_sizeof(self):
1648 pass
1649

◆ handle_static()

def cpp.ast.AstBuilder.handle_static (   self)

Definition at line 1326 of file ast.py.

1326 def handle_static(self):
1327 pass
1328

◆ handle_static_cast()

def cpp.ast.AstBuilder.handle_static_cast (   self)

Definition at line 1370 of file ast.py.

1370 def handle_static_cast(self):
1371 pass
1372

◆ handle_struct()

def cpp.ast.AstBuilder.handle_struct (   self)

Definition at line 1267 of file ast.py.

1267 def handle_struct(self):
1268 # Special case the handling typedef/aliasing of structs here.
1269 # It would be a pain to handle in the class code.
1270 name_tokens, var_token = self.GetName()
1271 if name_tokens:
1272 next_token = self._GetNextToken()
1273 is_syntax = (var_token.token_type == tokenize.SYNTAX and
1274 var_token.name[0] in '*&')
1275 is_variable = (var_token.token_type == tokenize.NAME and
1276 next_token.name == ';')
1277 variable = var_token
1278 if is_syntax and not is_variable:
1279 variable = next_token
1280 temp = self._GetNextToken()
1281 if temp.token_type == tokenize.SYNTAX and temp.name == '(':
1282 # Handle methods declared to return a struct.
1283 t0 = name_tokens[0]
1284 struct = tokenize.Token(tokenize.NAME, 'struct',
1285 t0.start-7, t0.start-2)
1286 type_and_name = [struct]
1287 type_and_name.extend(name_tokens)
1288 type_and_name.extend((var_token, next_token))
1289 return self._GetMethod(type_and_name, 0, None, False)
1290 assert temp.name == ';', (temp, name_tokens, var_token)
1291 if is_syntax or (is_variable and not self._handling_typedef):
1292 modifiers = ['struct']
1293 type_name = ''.join([t.name for t in name_tokens])
1294 position = name_tokens[0]
1295 return self._CreateVariable(position, variable.name, type_name,
1296 modifiers, var_token.name, None)
1297 name_tokens.extend((var_token, next_token))
1298 self._AddBackTokens(name_tokens)
1299 else:
1300 self._AddBackToken(var_token)
1301 return self._GetClass(Struct, VISIBILITY_PUBLIC, None)
1302

◆ handle_switch()

def cpp.ast.AstBuilder.handle_switch (   self)

Definition at line 1653 of file ast.py.

1653 def handle_switch(self):
1654 pass
1655

◆ handle_template()

def cpp.ast.AstBuilder.handle_template (   self)

Definition at line 1463 of file ast.py.

1463 def handle_template(self):
1464 token = self._GetNextToken()
1465 assert token.token_type == tokenize.SYNTAX, token
1466 assert token.name == '<', token
1467 templated_types = self._GetTemplatedTypes()
1468 # TODO(nnorwitz): for now, just ignore the template params.
1469 token = self._GetNextToken()
1470 if token.token_type == tokenize.NAME:
1471 if token.name == 'class':
1472 return self._GetClass(Class, VISIBILITY_PRIVATE, templated_types)
1473 elif token.name == 'struct':
1474 return self._GetClass(Struct, VISIBILITY_PUBLIC, templated_types)
1475 elif token.name == 'friend':
1476 return self.handle_friend()
1477 self._AddBackToken(token)
1478 tokens, last = self._GetVarTokensUpTo(tokenize.SYNTAX, '(', ';')
1479 tokens.append(last)
1480 self._AddBackTokens(tokens)
1481 if last.name == '(':
1482 return self.GetMethod(FUNCTION_NONE, templated_types)
1483 # Must be a variable definition.
1484 return None
1485

◆ handle_this()

def cpp.ast.AstBuilder.handle_this (   self)

Definition at line 1640 of file ast.py.

1640 def handle_this(self):
1641 pass # Nothing to do.
1642

◆ handle_throw()

def cpp.ast.AstBuilder.handle_throw (   self)

Definition at line 1684 of file ast.py.

1684 def handle_throw(self):
1685 pass # Not needed yet.
1686

◆ handle_true()

def cpp.ast.AstBuilder.handle_true (   self)

Definition at line 1486 of file ast.py.

1486 def handle_true(self):
1487 pass # Nothing to do.
1488

◆ handle_try()

def cpp.ast.AstBuilder.handle_try (   self)

Definition at line 1678 of file ast.py.

1678 def handle_try(self):
1679 pass # Not needed yet.
1680

◆ handle_typedef()

def cpp.ast.AstBuilder.handle_typedef (   self)

Definition at line 1390 of file ast.py.

1390 def handle_typedef(self):
1391 token = self._GetNextToken()
1392 if (token.token_type == tokenize.NAME and
1393 keywords.IsKeyword(token.name)):
1394 # Token must be struct/enum/union/class.
1395 method = getattr(self, 'handle_' + token.name)
1396 self._handling_typedef = True
1397 tokens = [method()]
1398 self._handling_typedef = False
1399 else:
1400 tokens = [token]
1401
1402 # Get the remainder of the typedef up to the semi-colon.
1403 tokens.extend(self._GetTokensUpTo(tokenize.SYNTAX, ';'))
1404
1405 # TODO(nnorwitz): clean all this up.
1406 assert tokens
1407 name = tokens.pop()
1408 indices = name
1409 if tokens:
1410 indices = tokens[0]
1411 if not indices:
1412 indices = token
1413 if name.name == ')':
1414 # HACK(nnorwitz): Handle pointers to functions "properly".
1415 if (len(tokens) >= 4 and
1416 tokens[1].name == '(' and tokens[2].name == '*'):
1417 tokens.append(name)
1418 name = tokens[3]
1419 elif name.name == ']':
1420 # HACK(nnorwitz): Handle arrays properly.
1421 if len(tokens) >= 2:
1422 tokens.append(name)
1423 name = tokens[1]
1424 new_type = tokens
1425 if tokens and isinstance(tokens[0], tokenize.Token):
1426 new_type = self.converter.ToType(tokens)[0]
1427 return Typedef(indices.start, indices.end, name.name,
1428 new_type, self.namespace_stack)
1429

◆ handle_typeid()

def cpp.ast.AstBuilder.handle_typeid (   self)

Definition at line 1430 of file ast.py.

1430 def handle_typeid(self):
1431 pass # Not needed yet.
1432

◆ handle_typename()

def cpp.ast.AstBuilder.handle_typename (   self)

Definition at line 1433 of file ast.py.

1433 def handle_typename(self):
1434 pass # Not needed yet.
1435

◆ handle_union()

def cpp.ast.AstBuilder.handle_union (   self)

Definition at line 1303 of file ast.py.

1303 def handle_union(self):
1304 return self._GetNestedType(Union)
1305

◆ handle_unsigned()

def cpp.ast.AstBuilder.handle_unsigned (   self)

Definition at line 1227 of file ast.py.

1227 def handle_unsigned(self):
1228 pass
1229

◆ handle_using()

def cpp.ast.AstBuilder.handle_using (   self)

Definition at line 1628 of file ast.py.

1628 def handle_using(self):
1629 tokens = self._GetTokensUpTo(tokenize.SYNTAX, ';')
1630 assert tokens
1631 return Using(tokens[0].start, tokens[0].end, tokens)
1632

◆ handle_virtual()

def cpp.ast.AstBuilder.handle_virtual (   self)

Definition at line 1329 of file ast.py.

1329 def handle_virtual(self):
1330 # What follows must be a method.
1331 token = token2 = self._GetNextToken()
1332 if token.name == 'inline':
1333 # HACK(nnorwitz): handle inline dtors by ignoring 'inline'.
1334 token2 = self._GetNextToken()
1335 if token2.token_type == tokenize.SYNTAX and token2.name == '~':
1336 return self.GetMethod(FUNCTION_VIRTUAL + FUNCTION_DTOR, None)
1337 assert token.token_type == tokenize.NAME or token.name == '::', token
1338 return_type_and_name, _ = self._GetVarTokensUpToIgnoringTemplates(
1339 tokenize.SYNTAX, '(') # )
1340 return_type_and_name.insert(0, token)
1341 if token2 is not token:
1342 return_type_and_name.insert(1, token2)
1343 return self._GetMethod(return_type_and_name, FUNCTION_VIRTUAL,
1344 None, False)
1345

◆ handle_void()

def cpp.ast.AstBuilder.handle_void (   self)

Definition at line 1221 of file ast.py.

1221 def handle_void(self):
1222 pass
1223

◆ handle_volatile()

def cpp.ast.AstBuilder.handle_volatile (   self)

Definition at line 1346 of file ast.py.

1346 def handle_volatile(self):
1347 pass
1348

◆ handle_wchar_t()

def cpp.ast.AstBuilder.handle_wchar_t (   self)

Definition at line 1224 of file ast.py.

1224 def handle_wchar_t(self):
1225 pass
1226

◆ handle_while()

def cpp.ast.AstBuilder.handle_while (   self)

Definition at line 1687 of file ast.py.

1687 def handle_while(self):
1688 pass
1689

◆ HandleError()

def cpp.ast.AstBuilder.HandleError (   self,
  msg,
  token 
)

Definition at line 709 of file ast.py.

709 def HandleError(self, msg, token):
710 printable_queue = list(reversed(self.token_queue[-20:]))
711 sys.stderr.write('Got %s in %s @ %s %s\n' %
712 (msg, self.filename, token, printable_queue))
713
def reversed(seq)
Definition: ast.py:50

Member Data Documentation

◆ converter

cpp.ast.AstBuilder.converter

Definition at line 707 of file ast.py.

◆ current_token

cpp.ast.AstBuilder.current_token

Definition at line 703 of file ast.py.

◆ filename

cpp.ast.AstBuilder.filename

Definition at line 690 of file ast.py.

◆ in_class

cpp.ast.AstBuilder.in_class

Definition at line 696 of file ast.py.

◆ in_class_name_only

cpp.ast.AstBuilder.in_class_name_only

Definition at line 698 of file ast.py.

◆ in_function

cpp.ast.AstBuilder.in_function

Definition at line 702 of file ast.py.

◆ namespace_stack

cpp.ast.AstBuilder.namespace_stack

Definition at line 695 of file ast.py.

◆ token_queue

cpp.ast.AstBuilder.token_queue

Definition at line 694 of file ast.py.

◆ tokens

cpp.ast.AstBuilder.tokens

Definition at line 689 of file ast.py.

◆ visibility

cpp.ast.AstBuilder.visibility

Definition at line 701 of file ast.py.


The documentation for this class was generated from the following file: