LiteralExprAST.py (6657:ef5fae93a3b2) LiteralExprAST.py (7055:4e24742201d7)
1# Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
2# Copyright (c) 2009 The Hewlett-Packard Development Company
3# All rights reserved.
4#
5# Redistribution and use in source and binary forms, with or without
6# modification, are permitted provided that the following conditions are
7# met: redistributions of source code must retain the above copyright
8# notice, this list of conditions and the following disclaimer;

--- 25 unchanged lines hidden (view full) ---

34 self.literal = literal
35 self.type = type
36
37 def __repr__(self):
38 return "[Literal: %s]" % self.literal
39
40 def generate(self, code):
41 fix = code.nofix()
1# Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
2# Copyright (c) 2009 The Hewlett-Packard Development Company
3# All rights reserved.
4#
5# Redistribution and use in source and binary forms, with or without
6# modification, are permitted provided that the following conditions are
7# met: redistributions of source code must retain the above copyright
8# notice, this list of conditions and the following disclaimer;

--- 25 unchanged lines hidden (view full) ---

34 self.literal = literal
35 self.type = type
36
37 def __repr__(self):
38 return "[Literal: %s]" % self.literal
39
40 def generate(self, code):
41 fix = code.nofix()
42 if self.type == "string":
42 if self.type == "std::string":
43 code('("${{self.literal}}")')
44 elif self.type == "bool":
45 code('(${{str(self.literal).lower()}})')
46 else:
47 code('(${{self.literal}})')
48 code.fix(fix)
49
50 type = self.symtab.find(self.type, Type)
51 if type is None:
52 # Can't find the type
53 self.error("Internal: can't primitive type '%s'" % self.type)
54
55 return type
43 code('("${{self.literal}}")')
44 elif self.type == "bool":
45 code('(${{str(self.literal).lower()}})')
46 else:
47 code('(${{self.literal}})')
48 code.fix(fix)
49
50 type = self.symtab.find(self.type, Type)
51 if type is None:
52 # Can't find the type
53 self.error("Internal: can't primitive type '%s'" % self.type)
54
55 return type