1
/* valarealliteral.vala
3
* Copyright (C) 2006-2010 Jürg Billeter
5
* This library is free software; you can redistribute it and/or
6
* modify it under the terms of the GNU Lesser General Public
7
* License as published by the Free Software Foundation; either
8
* version 2.1 of the License, or (at your option) any later version.
10
* This library is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
* Lesser General Public License for more details.
15
* You should have received a copy of the GNU Lesser General Public
16
* License along with this library; if not, write to the Free Software
17
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
* Jürg Billeter <j@bitron.ch>
26
* Represents a real literal in the source code.
28
public class Vala.RealLiteral : Literal {
32
public string value { get; set; }
35
* Creates a new real literal.
37
* @param r literal value
38
* @param source reference to source code
39
* @return newly created real literal
41
public RealLiteral (string r, SourceReference? source = null) {
43
source_reference = source;
46
public override void accept (CodeVisitor visitor) {
47
visitor.visit_real_literal (this);
49
visitor.visit_expression (this);
53
* Returns the type name of the value this literal represents.
55
* @return the name of literal type
57
public string get_type_name () {
58
if (value.has_suffix ("f") || value.has_suffix ("F")) {
65
public override bool is_pure () {
69
public override string to_string () {
73
public override bool check (CodeContext context) {
80
var st = (Struct) context.analyzer.root_symbol.scope.lookup (get_type_name ());
81
// ensure attributes are already processed
84
value_type = new FloatingType (st);
89
public override void emit (CodeGenerator codegen) {
90
codegen.visit_real_literal (this);
92
codegen.visit_expression (this);