From e7aaa59c64aa33889203949296207082f755df34 Mon Sep 17 00:00:00 2001 From: Victor Date: Wed, 15 Apr 2015 23:36:59 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B0=D1=80=D1=81=D0=B8=D0=BD=D0=B3=20?= =?UTF-8?q?=D1=87=D0=B8=D1=81=D0=BB=D0=BE=D0=B2=D1=8B=D1=85=20=D0=B7=D0=BD?= =?UTF-8?q?=D0=B0=D1=87=D0=B5=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/annimon/everlastingsummer/Parser.java | 3 +++ .../everlastingsummer/ast/ValueExpression.java | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 src/com/annimon/everlastingsummer/ast/ValueExpression.java diff --git a/src/com/annimon/everlastingsummer/Parser.java b/src/com/annimon/everlastingsummer/Parser.java index e8a23c4..81a8de4 100644 --- a/src/com/annimon/everlastingsummer/Parser.java +++ b/src/com/annimon/everlastingsummer/Parser.java @@ -369,6 +369,9 @@ public final class Parser { private Expression primary() { final Token current = get(0); + if (match(current, TokenType.NUMBER)) { + return new ValueExpression( Double.parseDouble(current.getText()) ); + } if (match(current, TokenType.WORD)) { return new VariableExpression(current.getText()); } diff --git a/src/com/annimon/everlastingsummer/ast/ValueExpression.java b/src/com/annimon/everlastingsummer/ast/ValueExpression.java new file mode 100644 index 0000000..02dd8f4 --- /dev/null +++ b/src/com/annimon/everlastingsummer/ast/ValueExpression.java @@ -0,0 +1,18 @@ +package com.annimon.everlastingsummer.ast; + +/** + * @author aNNiMON + */ +public class ValueExpression implements Expression { + + private final double value; + + public ValueExpression(double value) { + this.value = value; + } + + @Override + public double eval() { + return value; + } +}