Home | History | Annotate | Download | only in tools

Lines Matching refs:blocks

1532         - directive blocks: contain the tokens of a single pre-processor directive (e.g. #if)
1533 - text blocks, contain the tokens of non-directive blocks
1670 # removeWhiteSpace() will sometimes creates non-directive blocks
1671 # without any tokens. These come from blocks that only contained
1740 """a convenience class used to hold and process a list of blocks returned by
1742 def __init__(self,blocks):
1743 self.blocks = blocks
1746 return len(self.blocks)
1749 return self.blocks[n]
1752 return repr(self.blocks)
1756 for b in self.blocks:
1764 self.blocks = optimize_if01(self.blocks)
1768 for b in self.blocks:
1774 self.blocks = remove_macro_defines(self.blocks,macros)
1777 for b in self.blocks:
1782 for b in self.blocks:
1793 for b in self.blocks:
1806 for b in self.blocks:
1810 for b in self.blocks:
1833 for b in self.blocks:
1942 self.blocks = blocks2
1949 self.blocks = [ Block(tokens) ] + self.blocks
1954 for b in self.blocks:
1977 two successive text blocks in the result"""
1984 blocks = []
2011 blocks.append(block)
2046 blocks.append(block)
2055 blocks.append(block)
2057 return BlockList(blocks)
2075 blocks = BlockParser().parse( CppLinesTokenizer(lines) )
2076 if len(blocks) != len(expected):
2078 % (str(blocks), repr(expected))
2079 for n in range(len(blocks)):
2080 if str(blocks[n]) != expected[n]:
2082 % (n, str(blocks[n]), expected[n])
2083 #for block in blocks:
2103 def remove_macro_defines( blocks, excludedMacros=set() ):
2106 for b in blocks:
2113 def find_matching_endif( blocks, i ):
2114 n = len(blocks)
2117 if blocks[i].isDirective():
2118 dir = blocks[i].directive
2130 def optimize_if01( blocks ):
2133 n = len(blocks)
2137 while j < n and not blocks[j].isIf():
2140 D2("appending lines %d to %d" % (blocks[i].lineno, blocks[j-1].lineno))
2141 result += blocks[i:j]
2144 expr = blocks[j].expr
2147 result.append(blocks[j])
2153 j = find_matching_endif( blocks, j+1 )
2157 dir = blocks[j].directive
2159 D2("remove 'if 0' .. 'endif' (lines %d to %d)" % (blocks[i].lineno, blocks[j].lineno))
2163 D2("convert 'if 0' .. 'else' into 'if 1' (lines %d to %d)" % (blocks[i].lineno, blocks[j-1].lineno))
2164 blocks[j].directive = "if"
2165 blocks[j].expr = CppExpr( CppLineTokenizer("1").toTokenList() )
2170 blocks[j].directive = "if"
2175 k = find_matching_endif( blocks, j+1 )
2179 result += blocks[j+1:k]
2182 dir = blocks[k].directive
2184 D2("convert 'if 1' .. 'endif' (lines %d to %d)" % (blocks[j].lineno, blocks[k].lineno))
2185 result += optimize_if01(blocks[j+1:k])
2189 D2("convert 'if 1' .. 'else' (lines %d to %d)" % (blocks[j].lineno, blocks[k].lineno))
2190 result += optimize_if01(blocks[j+1:k])
2191 blocks[k].directive = "if"
2192 blocks[k].expr = CppExpr( CppLineTokenizer("0").toTokenList() )
2196 D2("convert 'if 1' .. 'elif' (lines %d to %d)" % (blocks[j].lineno, blocks[k].lineno))
2197 result += optimize_if01(blocks[j+1:k])
2198 blocks[k].expr = CppExpr( CppLineTokenizer("0").toTokenList() )