fix to character

--HG--
branch : pmacs2
This commit is contained in:
Erik Osheim 2010-02-20 11:42:29 -05:00
parent 195bfd98c7
commit 8ab8c86bf4
1 changed files with 15 additions and 13 deletions

View File

@ -16,21 +16,23 @@ chr1 = '[a-zA-Z_]'
chr2 = '[a-zA-Z0-9_]' chr2 = '[a-zA-Z0-9_]'
word = chr1 + chr2 + '*' word = chr1 + chr2 + '*'
class StringGrammar(Grammar): escaped = [
rules = [
PatternRule('escaped', r'\\[abfnrtv\\\'"]'), PatternRule('escaped', r'\\[abfnrtv\\\'"]'),
PatternRule('octal', r'\\[0-7]{3}'), PatternRule('octal', r'\\[0-7]{3}'),
PatternRule('hex', r'\\x[a-fA-F0-9]{2}'), PatternRule('hex', r'\\x[a-fA-F0-9]{2}'),
PatternRule('unicode', r'\\u[a-fA-F0-9]{4}'), PatternRule('unicode', r'\\u[a-fA-F0-9]{4}'),
PatternRule('unicode', r'\\U[a-fA-F0-9]{8}'), PatternRule('unicode', r'\\U[a-fA-F0-9]{8}'),
PatternRule('illegal', r'\\.*'), PatternRule('illegal', r'\\.*'),
PatternRule('data', r'[^\\"]+'),
] ]
class StringGrammar(Grammar):
rules = escaped + [PatternRule('data', r'[^\\"]+')]
class CharGrammar(Grammar):
rules = escaped + [PatternRule('data', r"[^\\']+")]
class RawStringGrammar(Grammar): class RawStringGrammar(Grammar):
rules = [ rules = [PatternRule('data', '[^`]+')]
PatternRule('data', '[^`]+'),
]
class GoGrammar(Grammar): class GoGrammar(Grammar):
rules = [ rules = [
@ -51,7 +53,7 @@ class GoGrammar(Grammar):
PatternRule('go.integer', r'(?:[1-9][0-9]*|0[0-9]*|0[xX][a-fA-F0-9]+)'), PatternRule('go.integer', r'(?:[1-9][0-9]*|0[0-9]*|0[xX][a-fA-F0-9]+)'),
RegionRule('go.char', "'", StringGrammar, "'"), RegionRule('go.char', "'", CharGrammar, "'"),
RegionRule('go.string', '"', StringGrammar, '"'), RegionRule('go.string', '"', StringGrammar, '"'),
RegionRule('go.string', '`', RawStringGrammar, '`'), RegionRule('go.string', '`', RawStringGrammar, '`'),
] ]