Added multiline strings.
This commit is contained in:
parent
7606b7af8c
commit
417abe105c
12
mparser.py
12
mparser.py
|
@ -39,6 +39,7 @@ tokens = ['LPAREN',
|
|||
'COMMA',
|
||||
'DOT',
|
||||
'STRING',
|
||||
'MULTILINE_STRING',
|
||||
'INT',
|
||||
'EOL_CONTINUE',
|
||||
'EOL',
|
||||
|
@ -66,6 +67,13 @@ def t_ATOM(t):
|
|||
t.type = reserved.get(t.value, 'ATOM')
|
||||
return t
|
||||
|
||||
|
||||
def t_MULTILINE_STRING(t):
|
||||
r"'''(.|\n)*?'''"
|
||||
t.value = t.value[3:-3]
|
||||
t.lexer.lineno += t.value.count('\n')
|
||||
return t
|
||||
|
||||
def t_STRING(t):
|
||||
"'[^']*'"
|
||||
t.value = t.value[1:-1]
|
||||
|
@ -127,6 +135,10 @@ def p_expression_string(t):
|
|||
'expression : STRING'
|
||||
t[0] = nodes.StringExpression(t[1], t.lineno(1))
|
||||
|
||||
def p_expression_multiline_string(t):
|
||||
'expression : MULTILINE_STRING'
|
||||
t[0] = nodes.StringExpression(t[1], t.lineno(1))
|
||||
|
||||
def p_statement_assign(t):
|
||||
'statement : expression ASSIGN statement'
|
||||
t[0] = nodes.Assignment(t[1], t[3], t[1].lineno())
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
project('multiline string', 'c')
|
||||
|
||||
x = '''hello again'''
|
||||
y = '''hello
|
||||
again'''
|
||||
|
||||
if x == y
|
||||
error('Things are wrong.')
|
||||
endif
|
Loading…
Reference in New Issue