Package ru.snake.spritepacker.writer.expression

Examples of ru.snake.spritepacker.writer.expression.Expression


      throw ParserException.create("parseExpressionBraces", current);
    }

    nextToken();

    Expression node;

    if (current.type == TokeType.END_EXPRESSION) {
      node = new ConstantExpression("");
    } else if (next != null && next.type == TokeType.END_EXPRESSION) {
      node = parseExpressionValue();
View Full Code Here


    return node;
  }

  private Expression parseExpressionNode() {
    Expression node;
    Expression value = parseExpressionValue();

    if (next.type == TokeType.END_EXPRESSION) {
      node = value;
    } else if (current.type == TokeType.OPERATION) {
      node = parseOperatorNode(value);
View Full Code Here

      throw ParserException.create("parseOperatorNode", current);
    }

    String operation = current.value;

    Expression node;

    nextToken();

    if (operation.equals("+")) {
      node = parseAddOperation(left);
View Full Code Here

    return node;
  }

  private Expression parseAddOperation(Expression left) {
    Expression node;
    Expression value = parseExpressionValue();

    boolean isOperition = current.type == TokeType.OPERATION;

    if (isOperition && current.value.equals("+")) {
      nextToken();

      value = new AddExpression(left, value);

      node = parseAddOperation(value);
    } else if (isOperition && current.value.equals("-")) {
      nextToken();

      value = new AddExpression(left, value);

      node = parseSubOperation(value);
    } else if (isOperition && current.value.equals("*")) {
      nextToken();

      Expression right = parseMulOperation(value);

      node = new AddExpression(left, right);
    } else if (isOperition && current.value.equals("/")) {
      nextToken();

      Expression right = parseDivOperation(value);

      node = new AddExpression(left, right);
    } else if (isOperition && current.value.equals("%")) {
      nextToken();

      Expression right = parseModOperation(value);

      node = new AddExpression(left, right);
    } else {
      node = new AddExpression(left, value);
    }
View Full Code Here

    return node;
  }

  private Expression parseSubOperation(Expression left) {
    Expression node;
    Expression value = parseExpressionValue();

    boolean isOperition = current.type == TokeType.OPERATION;

    if (isOperition && current.value.equals("+")) {
      nextToken();

      value = new SubExpression(left, value);

      node = parseAddOperation(value);
    } else if (isOperition && current.value.equals("-")) {
      nextToken();

      value = new SubExpression(left, value);

      node = parseSubOperation(value);
    } else if (isOperition && current.value.equals("*")) {
      nextToken();

      Expression right = parseMulOperation(value);

      node = new SubExpression(left, right);
    } else if (isOperition && current.value.equals("/")) {
      nextToken();

      Expression right = parseDivOperation(value);

      node = new SubExpression(left, right);
    } else if (isOperition && current.value.equals("%")) {
      nextToken();

      Expression right = parseModOperation(value);

      node = new SubExpression(left, right);
    } else {
      node = new SubExpression(left, value);
    }
View Full Code Here

    return node;
  }

  private Expression parseMulOperation(Expression left) {
    Expression node;
    Expression value = parseExpressionValue();

    boolean isOperition = current.type == TokeType.OPERATION;

    if (isOperition && current.value.equals("+")) {
      nextToken();
View Full Code Here

    return node;
  }

  private Expression parseDivOperation(Expression left) {
    Expression node;
    Expression value = parseExpressionValue();

    boolean isOperition = current.type == TokeType.OPERATION;

    if (isOperition && current.value.equals("+")) {
      nextToken();
View Full Code Here

    return node;
  }

  private Expression parseModOperation(Expression left) {
    Expression node;
    Expression value = parseExpressionValue();

    boolean isOperition = current.type == TokeType.OPERATION;

    if (isOperition && current.value.equals("+")) {
      nextToken();
View Full Code Here

    return node;
  }

  private Expression parseExpressionValue() {
    Expression node = null;

    if (current.type == TokeType.NUMBER) {
      node = new ConstantExpression(current.value);
    } else if (current.type == TokeType.VARIABLE) {
      node = new VariableExpression(current.value);
View Full Code Here

TOP

Related Classes of ru.snake.spritepacker.writer.expression.Expression

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.