Identifier(u':='), Integer(2), QuotedVar(u'after.sentence'), Identifier(u':='), Integer(3), QuotedVar(u'after.block'), Identifier(u':=')]], [u'STRINGS', [Identifier(u's'), Identifier(u't')]], [u'FUNCTION', [Identifier(u'output.nonnull')], [QuotedVar(u's'), Identifier(u':='), Identifier(u'output.state'), Identifier(u'mid.sentence'), Identifier(u'='), FunctionLiteral([String(u', '), Identifier(u'*'), Identifier(u'write$')]), FunctionLiteral([Identifier(u'output.state'), Identifier(u'after.block'), Identifier(u'='), FunctionLiteral([Identifier(u'add.period$'), Identifier(u'write$'), Identifier(u'newline$'), String(u'\\newblock '), Identifier(u'write$')]), FunctionLiteral([Identifier(u'output.state'), Identifier(u'before.all'), Identifier(u'='), QuotedVar(u'write$'), FunctionLiteral([Identifier(u'add.period$'), String(u' '), Identifier(u'*'), Identifier(u'write$')]), Identifier(u'if$')]), Identifier(u'if$'), Identifier(u'mid.sentence'), QuotedVar(u'output.state'), Identifier(u':=')]), Identifier(u'if$'), Identifier(u's')]], [u'FUNCTION', [Identifier(u'output')], [Identifier(u'duplicate$'), Identifier(u'empty$'), QuotedVar(u'pop$'), QuotedVar(u'output.nonnull'), Identifier(u'if$')]], [u'FUNCTION', [Identifier(u'output.check')], [QuotedVar(u't'), Identifier(u':='), Identifier(u'duplicate$'),
def process_string_literal(value): assert value.startswith('"') assert value.endswith('"') return String(value[1:-1])