示例#1
0
 def make_node(self):
     parser = self.parser
     caret = parser.caret
     qchar = parser.text[caret:caret+1]
     if qchar not in "'\"":
         return None
     if parser.text[caret-1] not in EMPTY:
         parser.update(caret+1)
         return Entity(qchar)
     if parser.text[caret+1:caret+2] in EMPTY:
         parser.update(caret+1)
         return Entity(qchar)
     index = parser.text.find(qchar, caret+1)
     while index != -1:
         char = parser.text[index-1]
         if char == '\\':
             index = parser.text.find(qchar, index+1)
         elif char not in EMPTY:
             node = Element('quoted')
             node.pos = parser.copy_pos()
             node['char'] = qchar
             node.end_pos = index
             parser.update(parser.caret+1)
             return node
         else:
             break
     parser.update(parser.end)
     return Entity(qchar)
示例#2
0
 def make_node(self):
     parser = self.parser
     caret = parser.caret
     qchar = parser.text[caret:caret + 1]
     if qchar not in "'\"":
         return None
     if parser.text[caret - 1] not in EMPTY:
         parser.update(caret + 1)
         return Entity(qchar)
     if parser.text[caret + 1:caret + 2] in EMPTY:
         parser.update(caret + 1)
         return Entity(qchar)
     index = parser.text.find(qchar, caret + 1)
     while index != -1:
         char = parser.text[index - 1]
         if char == '\\':
             index = parser.text.find(qchar, index + 1)
         elif char not in EMPTY:
             node = Element('quoted')
             node.pos = parser.copy_pos()
             node['char'] = qchar
             node.end_pos = index
             parser.update(parser.caret + 1)
             return node
         else:
             break
     parser.update(parser.end)
     return Entity(qchar)