Added multiline strings.

pull/15/head
Jussi Pakkanen 12 years ago
parent 7606b7af8c
commit 417abe105c
  1. 12
      mparser.py
  2. 9
      test cases/common/32 multiline string/meson.build

@ -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…
Cancel
Save