Package st.gravel.support.compiler.ast

Source Code of st.gravel.support.compiler.ast.ParserTest

package st.gravel.support.compiler.ast;

/*
  This file is automatically generated from typed smalltalk source. Do not edit by hand.
  (C) AG5.com
*/

import org.junit.Test;
import static org.junit.Assert.*;
import st.gravel.support.compiler.ast.Statement;
import st.gravel.support.compiler.ast.Parser;
import st.gravel.support.compiler.ast.AssignmentNode;
import st.gravel.support.compiler.ast.BlockNode;
import st.gravel.support.compiler.ast.BinaryMessageNode;
import st.gravel.support.compiler.ast.BinaryMethodNode;
import st.gravel.support.compiler.ast.ByteArrayLiteralNode;
import st.gravel.support.compiler.ast.CascadeNode;
import st.gravel.support.compiler.ast.CharacterLiteralNode;
import st.gravel.support.compiler.ast.DoubleLiteralNode;
import st.gravel.support.compiler.ast.FixedPointLiteralNode;
import st.gravel.support.compiler.ast.FloatLiteralNode;
import st.gravel.support.compiler.ast.IntegerLiteralNode;
import st.gravel.support.compiler.ast.KeywordMessageNode;
import st.gravel.support.compiler.ast.KeywordMethodNode;
import st.gravel.support.compiler.ast.ArrayLiteralNode;
import st.gravel.support.compiler.ast.NamespacedVariableNode;
import st.gravel.support.compiler.ast.StringLiteralNode;
import st.gravel.support.compiler.ast.SymbolLiteralNode;
import st.gravel.support.compiler.ast.UnaryMessageNode;
import st.gravel.support.compiler.ast.UnaryMethodNode;
import st.gravel.support.compiler.ast.VariableNode;

public class ParserTest {

  @Test
  public void initialize() {
  }

  @Test
  public void testAssignmentExpression() {
    final Statement _node;
    _node = Parser.factory.source_(" foo := 7 ").parseStatement();
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), AssignmentNode.factory));
    assertEquals((String) "foo := 7", (String) _node.prettySourceString());
  }

  @Test
  public void testAssignmentExpressionInBlock() {
    final Statement _node;
    _node = Parser.factory.source_("[ foo := 7 ]").parseStatement();
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), BlockNode.factory));
    assertEquals((String) "[foo := 7]", (String) _node.prettySourceString());
  }

  @Test
  public void testParse2ArgBlockEmpty1() {
    final BlockNode _node;
    _node = ((BlockNode) Parser.factory.source_("[:a :b  | ]").parseExpression());
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), BlockNode.factory));
    assertEquals((String) "[:a :b | ]", (String) _node.prettySourceString());
  }

  @Test
  public void testParse2ArgBlockEmpty2() {
    final Statement _node;
    _node = Parser.factory.source_("[:a :b ]").parseExpression();
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), BlockNode.factory));
    assertEquals((String) "[:a :b | ]", (String) _node.prettySourceString());
  }

  @Test
  public void testParse2ArgBlockNoTemps() {
    final Statement _node;
    _node = Parser.factory.source_("[:a :b  | a foo. b bar]").parseExpression();
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), BlockNode.factory));
    assertEquals((String) "\n[:a :b | \na foo.\nb bar]", (String) _node.prettySourceString());
  }

  @Test
  public void testParse2ArgBlockNoTempsDotEnd() {
    final Statement _node;
    _node = Parser.factory.source_("[:a :b  | a foo. b bar.]").parseExpression();
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), BlockNode.factory));
    assertEquals((String) "\n[:a :b | \na foo.\nb bar]", (String) _node.prettySourceString());
  }

  @Test
  public void testParse2ArgBlockWithTemps() {
    final Statement _node;
    _node = Parser.factory.source_("[:a :b  | | c | a foo. b bar. c foo]").parseExpression();
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), BlockNode.factory));
    assertEquals((String) "\n[:a :b | \n| c |\na foo.\nb bar.\nc foo]", (String) _node.prettySourceString());
  }

  @Test
  public void testParseBinaryExpression() {
    final Statement _node;
    _node = Parser.factory.source_(" 3 + 7 ").parseExpression();
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), BinaryMessageNode.factory));
    assertEquals((String) "3 + 7", (String) _node.prettySourceString());
  }

  @Test
  public void testParseBinaryMethod() {
    final BinaryMethodNode _node;
    _node = ((BinaryMethodNode) Parser.factory.parseMethod_("+ arg ^bar"));
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), BinaryMethodNode.factory));
    assertEquals((String) "+ arg\n\t^bar", (String) _node.prettySourceString());
  }

  @Test
  public void testParseBinaryUnaryExpression() {
    final Statement _node;
    _node = Parser.factory.source_(" 3 bar + 2 + 1 foo").parseExpression();
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), BinaryMessageNode.factory));
    assertEquals((String) "3 bar + 2 + 1 foo", (String) _node.prettySourceString());
  }

  @Test
  public void testParseByteArray() {
    final ByteArrayLiteralNode _node;
    _node = ((ByteArrayLiteralNode) Parser.factory.source_("#[1 2 3]").parseExpression());
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), ByteArrayLiteralNode.factory));
    assertEquals((String) "#[1 2 3]", (String) _node.prettySourceString());
    assertTrue(st.gravel.support.jvm.ByteArrayExtensions.equals_(_node.value(), new byte[] { 1, 2, 3 }));
  }

  @Test
  public void testParseByteArrayHighValues() {
    final ByteArrayLiteralNode _node;
    _node = ((ByteArrayLiteralNode) Parser.factory.source_("#[0 127 128 129 255 0]").parseExpression());
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), ByteArrayLiteralNode.factory));
    assertEquals((String) "#[0 127 128 129 255 0]", (String) _node.prettySourceString());
    assertTrue(st.gravel.support.jvm.ByteArrayExtensions.equals_(_node.value(), new byte[] { 0, 127, -128, -127, -1, 0 }));
  }

  @Test
  public void testParseCascade() {
    final Statement _node;
    _node = Parser.factory.source_("3 foo + 2\n\t\t+ 3;\n\t\tbar: 2;\n\t\tbaz: 3;\n\t\tbaz: 4;\n\t\tboo").parseExpression();
    assertEquals((st.gravel.support.jvm.SmalltalkFactory) CascadeNode.factory, (st.gravel.support.jvm.SmalltalkFactory) _node.factory());
    assertEquals((String) "(3 foo + 2) + 3; bar: 2; baz: 3; baz: 4; boo", (String) _node.prettySourceString());
  }

  @Test
  public void testParseChar() {
    final CharacterLiteralNode _node;
    _node = ((CharacterLiteralNode) Parser.factory.source_("$a").parseExpression());
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), CharacterLiteralNode.factory));
    assertEquals((String) "$a", (String) _node.prettySourceString());
    assertTrue(st.gravel.support.jvm.CharacterExtensions.equals_(_node.value(), 'a'));
  }

  @Test
  public void testParseDouble() {
    final DoubleLiteralNode _node;
    _node = ((DoubleLiteralNode) Parser.factory.source_("123412341345145145123412341234.003213123123d").parseExpression());
    assertEquals((st.gravel.support.jvm.SmalltalkFactory) DoubleLiteralNode.factory, (st.gravel.support.jvm.SmalltalkFactory) _node.factory());
    assertEquals((double) 1.2341234134515e29d, (double) _node.value(), (double) 1.0e16f);
  }

  @Test
  public void testParseDouble2() {
    final DoubleLiteralNode _node;
    _node = ((DoubleLiteralNode) Parser.factory.source_("3.0d.").parseExpression());
    assertEquals((st.gravel.support.jvm.SmalltalkFactory) DoubleLiteralNode.factory, (st.gravel.support.jvm.SmalltalkFactory) _node.factory());
    assertEquals((double) 3.0d, (double) _node.value(), (double) 0.000000001f);
  }

  @Test
  public void testParseDoubleWithExponent() {
    final DoubleLiteralNode _node;
    _node = ((DoubleLiteralNode) Parser.factory.source_("1.23412d29").parseExpression());
    assertEquals((st.gravel.support.jvm.SmalltalkFactory) DoubleLiteralNode.factory, (st.gravel.support.jvm.SmalltalkFactory) _node.factory());
    assertEquals((double) 1.23412e29d, (double) _node.value(), (double) 0.000000001f);
  }

  @Test
  public void testParseDoubleWithExponent2() {
    final DoubleLiteralNode _node;
    _node = ((DoubleLiteralNode) Parser.factory.source_("1d10").parseExpression());
    assertEquals((st.gravel.support.jvm.SmalltalkFactory) DoubleLiteralNode.factory, (st.gravel.support.jvm.SmalltalkFactory) _node.factory());
    assertEquals((double) 1.0e10d, (double) _node.value(), (double) 0.000000001f);
  }

  @Test
  public void testParseDoubleWithExponent3() {
    final DoubleLiteralNode _node;
    _node = ((DoubleLiteralNode) Parser.factory.source_("1d-10").parseExpression());
    assertEquals((st.gravel.support.jvm.SmalltalkFactory) DoubleLiteralNode.factory, (st.gravel.support.jvm.SmalltalkFactory) _node.factory());
    assertEquals((double) 1.0e-10d, (double) _node.value(), (double) 0.000000001f);
  }

  @Test
  public void testParseEmptyBlock() {
    final Statement _node;
    _node = Parser.factory.source_("[]").parseExpression();
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), BlockNode.factory));
    assertEquals((String) "[]", (String) _node.prettySourceString());
  }

  @Test
  public void testParseFixedPoint() {
    final FixedPointLiteralNode _node;
    _node = ((FixedPointLiteralNode) Parser.factory.source_("12345.0067s").parseExpression());
    assertEquals((st.gravel.support.jvm.SmalltalkFactory) FixedPointLiteralNode.factory, (st.gravel.support.jvm.SmalltalkFactory) _node.factory());
    assertEquals((String) "12345.0067s", (String) _node.valueString());
  }

  @Test
  public void testParseFixedPointNegativeWithExponent() {
    final FixedPointLiteralNode _node;
    _node = ((FixedPointLiteralNode) Parser.factory.source_("-2.5s2").parseExpression());
    assertEquals((st.gravel.support.jvm.SmalltalkFactory) FixedPointLiteralNode.factory, (st.gravel.support.jvm.SmalltalkFactory) _node.factory());
    assertEquals((String) "-2.5s2", (String) _node.valueString());
  }

  @Test
  public void testParseFixedPointNegativeWithoutExponent() {
    final FixedPointLiteralNode _node;
    _node = ((FixedPointLiteralNode) Parser.factory.source_("-2.5s").parseExpression());
    assertEquals((st.gravel.support.jvm.SmalltalkFactory) FixedPointLiteralNode.factory, (st.gravel.support.jvm.SmalltalkFactory) _node.factory());
    assertEquals((String) "-2.5s", (String) _node.valueString());
  }

  @Test
  public void testParseFixedPointWithExponent() {
    final FixedPointLiteralNode _node;
    _node = ((FixedPointLiteralNode) Parser.factory.source_("5.1s2").parseExpression());
    assertEquals((st.gravel.support.jvm.SmalltalkFactory) FixedPointLiteralNode.factory, (st.gravel.support.jvm.SmalltalkFactory) _node.factory());
    assertEquals((String) "5.1s2", (String) _node.valueString());
  }

  @Test
  public void testParseFixedPointWithoutExponent() {
    final FixedPointLiteralNode _node;
    _node = ((FixedPointLiteralNode) Parser.factory.source_("2.5s").parseExpression());
    assertEquals((st.gravel.support.jvm.SmalltalkFactory) FixedPointLiteralNode.factory, (st.gravel.support.jvm.SmalltalkFactory) _node.factory());
    assertEquals((String) "2.5s", (String) _node.valueString());
  }

  @Test
  public void testParseFixedPointWithZero() {
    final FixedPointLiteralNode _node;
    _node = ((FixedPointLiteralNode) Parser.factory.source_("0.5s").parseExpression());
    assertEquals((st.gravel.support.jvm.SmalltalkFactory) FixedPointLiteralNode.factory, (st.gravel.support.jvm.SmalltalkFactory) _node.factory());
    assertEquals((String) "0.5s", (String) _node.valueString());
  }

  @Test
  public void testParseFixedPointWithZero2() {
    final FixedPointLiteralNode _node;
    _node = ((FixedPointLiteralNode) Parser.factory.source_("0.05s").parseExpression());
    assertEquals((st.gravel.support.jvm.SmalltalkFactory) FixedPointLiteralNode.factory, (st.gravel.support.jvm.SmalltalkFactory) _node.factory());
    assertEquals((String) "0.05s", (String) _node.valueString());
  }

  @Test
  public void testParseFloat() {
    final FloatLiteralNode _node;
    _node = ((FloatLiteralNode) Parser.factory.source_("123412341345145145123412341234.003213123123").parseExpression());
    assertEquals((st.gravel.support.jvm.SmalltalkFactory) FloatLiteralNode.factory, (st.gravel.support.jvm.SmalltalkFactory) _node.factory());
    assertEquals((float) 123412341345145145123412341234.003213123123f, (float) _node.value(), (float) 0.000000001f);
  }

  @Test
  public void testParseFloat2() {
    final FloatLiteralNode _node;
    _node = ((FloatLiteralNode) Parser.factory.source_("3.0.").parseExpression());
    assertEquals((st.gravel.support.jvm.SmalltalkFactory) FloatLiteralNode.factory, (st.gravel.support.jvm.SmalltalkFactory) _node.factory());
    assertEquals((float) 3.0f, (float) _node.value(), (float) 0.000000001f);
  }

  @Test
  public void testParseFloatWithExponent() {
    final FloatLiteralNode _node;
    _node = ((FloatLiteralNode) Parser.factory.source_("1.23412e29").parseExpression());
    assertEquals((st.gravel.support.jvm.SmalltalkFactory) FloatLiteralNode.factory, (st.gravel.support.jvm.SmalltalkFactory) _node.factory());
    assertEquals((float) 1.23412e29f, (float) _node.value(), (float) 0.000000001f);
  }

  @Test
  public void testParseFloatWithNegativeExponent() {
    final FloatLiteralNode _node;
    _node = ((FloatLiteralNode) Parser.factory.source_("1.23412e-29").parseExpression());
    assertEquals((st.gravel.support.jvm.SmalltalkFactory) FloatLiteralNode.factory, (st.gravel.support.jvm.SmalltalkFactory) _node.factory());
    assertEquals((float) 1.23412e-29f, (float) _node.value(), (float) 0.000000001f);
  }

  @Test
  public void testParseHexInteger() {
    final IntegerLiteralNode _node;
    _node = ((IntegerLiteralNode) Parser.factory.source_("16rFF").parseExpression());
    assertEquals((st.gravel.support.jvm.SmalltalkFactory) IntegerLiteralNode.factory, (st.gravel.support.jvm.SmalltalkFactory) _node.factory());
    assertEquals(255, (int) _node.value());
  }

  @Test
  public void testParseInteger() {
    final IntegerLiteralNode _node;
    _node = ((IntegerLiteralNode) Parser.factory.source_("123").parseExpression());
    assertEquals((st.gravel.support.jvm.SmalltalkFactory) IntegerLiteralNode.factory, (st.gravel.support.jvm.SmalltalkFactory) _node.factory());
    assertEquals(123, (int) _node.value());
  }

  @Test
  public void testParseIntegerSpace() {
    final IntegerLiteralNode _node;
    _node = ((IntegerLiteralNode) Parser.factory.source_("123 ").parseExpression());
    assertEquals((st.gravel.support.jvm.SmalltalkFactory) IntegerLiteralNode.factory, (st.gravel.support.jvm.SmalltalkFactory) _node.factory());
    assertEquals(123, (int) _node.value());
  }

  @Test
  public void testParseKeywordBinaryUnaryExpression1() {
    final Statement _node;
    _node = Parser.factory.source_("2 bar + 7 foo: 7 bar: 4 baz foo: 2 + 1 boo: 3 foo + 2 roo: 3 + 2 foo noo: 3 hoo + 2 joo").parseExpression();
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), KeywordMessageNode.factory));
    assertEquals((String) "2 bar + 7\n\tfoo: 7\n\tbar: 4 baz\n\tfoo: 2 + 1\n\tboo: 3 foo + 2\n\troo: 3 + 2 foo\n\tnoo: 3 hoo + 2 joo", (String) _node.prettySourceString());
  }

  @Test
  public void testParseKeywordBinaryUnaryExpression2() {
    final Statement _node;
    _node = Parser.factory.source_("2 bar foo: 7 bar: 4 baz foo: 2 + 1 boo: 3 foo + 2 roo: 3 + 2 foo noo: 3 hoo + 2 joo").parseExpression();
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), KeywordMessageNode.factory));
    assertEquals((String) "2 bar\n\tfoo: 7\n\tbar: 4 baz\n\tfoo: 2 + 1\n\tboo: 3 foo + 2\n\troo: 3 + 2 foo\n\tnoo: 3 hoo + 2 joo", (String) _node.prettySourceString());
  }

  @Test
  public void testParseKeywordBinaryUnaryExpression3() {
    final Statement _node;
    _node = Parser.factory.source_("2 + 7 foo: 7 bar: 4 baz foo: 2 + 1 boo: 3 foo + 2 roo: 3 + 2 foo noo: 3 hoo + 2 joo").parseExpression();
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), KeywordMessageNode.factory));
    assertEquals((String) "2 + 7\n\tfoo: 7\n\tbar: 4 baz\n\tfoo: 2 + 1\n\tboo: 3 foo + 2\n\troo: 3 + 2 foo\n\tnoo: 3 hoo + 2 joo", (String) _node.prettySourceString());
  }

  @Test
  public void testParseKeywordBinaryUnaryExpression4() {
    final Statement _node;
    _node = Parser.factory.source_("2 + 7 bar foo: 7 bar: 4 baz foo: 2 + 1 boo: 3 foo + 2 roo: 3 + 2 foo noo: 3 hoo + 2 joo").parseExpression();
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), KeywordMessageNode.factory));
    assertEquals((String) "2 + 7 bar\n\tfoo: 7\n\tbar: 4 baz\n\tfoo: 2 + 1\n\tboo: 3 foo + 2\n\troo: 3 + 2 foo\n\tnoo: 3 hoo + 2 joo", (String) _node.prettySourceString());
  }

  @Test
  public void testParseKeywordExpression() {
    final Statement _node;
    _node = Parser.factory.source_(" 3 foo: 7 bar: 4 ").parseExpression();
    assertEquals((st.gravel.support.jvm.SmalltalkFactory) KeywordMessageNode.factory, (st.gravel.support.jvm.SmalltalkFactory) _node.factory());
    assertEquals((String) "3 foo: 7 bar: 4", (String) _node.prettySourceString());
  }

  @Test
  public void testParseKeywordMethod1() {
    final KeywordMethodNode _node;
    _node = ((KeywordMethodNode) Parser.factory.parseMethod_("foo: arg1 ^bar"));
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), KeywordMethodNode.factory));
    assertEquals((String) "foo: arg1\n\t^bar", (String) _node.prettySourceString());
  }

  @Test
  public void testParseKeywordMethod2() {
    final KeywordMethodNode _node;
    _node = ((KeywordMethodNode) Parser.factory.parseMethod_("foo: arg1 bar: arg2 ^bar"));
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), KeywordMethodNode.factory));
    assertEquals((String) "foo: arg1 bar: arg2\n\t^bar", (String) _node.prettySourceString());
  }

  @Test
  public void testParseLiteralArray() {
    final ArrayLiteralNode _node;
    _node = ((ArrayLiteralNode) Parser.factory.source_("#(#foo foo \'foo\' 1 (a b c) #( a b c) ((x)) () #[1 2 3])").parseExpression());
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), ArrayLiteralNode.factory));
    assertEquals((String) "#(#foo #foo \'foo\' 1 #(#a #b #c) #(#a #b #c) #(#(#x)) #() #[1 2 3])", (String) _node.prettySourceString());
    assertTrue(st.gravel.support.jvm.IntegerExtensions.equals_(_node.value().length, 9));
  }

  @Test
  public void testParseMethodWithArgAndReturnType() {
    final BinaryMethodNode _node;
    _node = ((BinaryMethodNode) Parser.factory.parseMethod_("+ arg {String} {^String}^bar"));
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), BinaryMethodNode.factory));
    assertEquals((String) "+ arg {String} {^String}\n\t^bar", (String) _node.prettySourceString());
    assertTrue(_node.argument().type() != null);
    assertTrue(_node.returnType() != null);
  }

  @Test
  public void testParseMethodWithArgType() {
    final BinaryMethodNode _node;
    _node = ((BinaryMethodNode) Parser.factory.parseMethod_("+ arg {String} ^bar"));
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), BinaryMethodNode.factory));
    assertEquals((String) "+ arg {String}\n\t^bar", (String) _node.prettySourceString());
    assertTrue(_node.argument().type() != null);
    assertTrue(_node.returnType() == null);
  }

  @Test
  public void testParseMethodWithReturnType() {
    final BinaryMethodNode _node;
    _node = ((BinaryMethodNode) Parser.factory.parseMethod_("+ arg {^String} ^bar"));
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), BinaryMethodNode.factory));
    assertEquals((String) "+ arg {^String}\n\t^bar", (String) _node.prettySourceString());
  }

  @Test
  public void testParseMethodWithReturnTypeWithSpace() {
    final BinaryMethodNode _node;
    _node = ((BinaryMethodNode) Parser.factory.parseMethod_("+ arg {^ String} ^bar"));
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), BinaryMethodNode.factory));
    assertEquals((String) "+ arg {^String}\n\t^bar", (String) _node.prettySourceString());
  }

  @Test
  public void testParseNamespacedVariable() {
    final NamespacedVariableNode _node;
    _node = ((NamespacedVariableNode) Parser.factory.source_(" foo.bar.baz ").parseExpression());
    assertEquals((st.gravel.support.jvm.SmalltalkFactory) NamespacedVariableNode.factory, (st.gravel.support.jvm.SmalltalkFactory) _node.factory());
    assertEquals((String) "foo.bar.baz", (String) _node.prettySourceString());
    assertEquals((String[]) new String[] { "foo", "bar", "baz" }, (String[]) _node.path());
  }

  @Test
  public void testParseNegativeInteger() {
    final IntegerLiteralNode _node;
    _node = ((IntegerLiteralNode) Parser.factory.source_("-123").parseExpression());
    assertEquals((st.gravel.support.jvm.SmalltalkFactory) IntegerLiteralNode.factory, (st.gravel.support.jvm.SmalltalkFactory) _node.factory());
    assertEquals(-123, (int) _node.value());
  }

  @Test
  public void testParseNestedExpression() {
    final Statement _node;
    _node = Parser.factory.source_(" 3 + (4 + 5) ").parseExpression();
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), BinaryMessageNode.factory));
    assertEquals((String) "3 + (4 + 5)", (String) _node.prettySourceString());
  }

  @Test
  public void testParseNilaryBlockNoTemps() {
    final Statement _node;
    _node = Parser.factory.source_("[1 foo. 2 bar]").parseExpression();
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), BlockNode.factory));
    assertEquals((String) "\n[\n1 foo.\n2 bar]", (String) _node.prettySourceString());
  }

  @Test
  public void testParseNilaryBlockWithTemps() {
    final Statement _node;
    _node = Parser.factory.source_("[| a b | a foo. b bar]").parseExpression();
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), BlockNode.factory));
    assertEquals((String) "\n[\n| a b |\na foo.\nb bar]", (String) _node.prettySourceString());
  }

  @Test
  public void testParseNilInArray1() {
    final ArrayLiteralNode _node;
    _node = ((ArrayLiteralNode) Parser.factory.source_("#(nil)").parseExpression());
    assertEquals((st.gravel.support.jvm.SmalltalkFactory) ArrayLiteralNode.factory, (st.gravel.support.jvm.SmalltalkFactory) _node.factory());
    assertEquals((Object) null, (Object) _node.value()[0]);
  }

  @Test
  public void testParseOrType() {
    final BinaryMethodNode _node;
    _node = ((BinaryMethodNode) Parser.factory.parseMethod_("+ arg {String | Nil} ^bar"));
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), BinaryMethodNode.factory));
    assertEquals((String) "+ arg {String | Nil}\n\t^bar", (String) _node.prettySourceString());
  }

  @Test
  public void testParseReturn() {
    final Statement _node;
    _node = Parser.factory.source_("[:a | ^a]").parseExpression();
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), BlockNode.factory));
    assertEquals((String) "[:a | ^a]", (String) _node.prettySourceString());
  }

  @Test
  public void testParseString1() {
    final StringLiteralNode _node;
    _node = ((StringLiteralNode) Parser.factory.source_("\'fromage\'").parseExpression());
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), StringLiteralNode.factory));
    assertTrue(st.gravel.support.jvm.StringExtensions.equals_(_node.value(), "fromage"));
  }

  @Test
  public void testParseString2() {
    final StringLiteralNode _node;
    _node = ((StringLiteralNode) Parser.factory.source_("\'from\'\'age\'").parseExpression());
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), StringLiteralNode.factory));
    assertTrue(st.gravel.support.jvm.StringExtensions.equals_(_node.value(), "from\'age"));
  }

  @Test
  public void testParseSymbol1() {
    final SymbolLiteralNode _node;
    _node = ((SymbolLiteralNode) Parser.factory.source_("#\'from\'\'age\'").parseExpression());
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), SymbolLiteralNode.factory));
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.value(), st.gravel.core.Symbol.value("from\'age")));
  }

  @Test
  public void testParseSymbol2() {
    final SymbolLiteralNode _node;
    _node = ((SymbolLiteralNode) Parser.factory.source_("#foo").parseExpression());
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), SymbolLiteralNode.factory));
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.value(), st.gravel.core.Symbol.value("foo")));
  }

  @Test
  public void testParseUnaryBlockNoTemps() {
    final Statement _node;
    _node = Parser.factory.source_("[:a | a foo. 2 bar]").parseExpression();
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), BlockNode.factory));
    assertEquals((String) "\n[:a | \na foo.\n2 bar]", (String) _node.prettySourceString());
  }

  @Test
  public void testParseUnaryBlockWithTemps() {
    final Statement _node;
    _node = Parser.factory.source_("[:a | | b | a foo. b bar]").parseExpression();
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), BlockNode.factory));
    assertEquals((String) "\n[:a | \n| b |\na foo.\nb bar]", (String) _node.prettySourceString());
  }

  @Test
  public void testParseUnaryExpression() {
    final UnaryMessageNode _node;
    _node = ((UnaryMessageNode) Parser.factory.source_(" 3 foo ").parseExpression());
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), UnaryMessageNode.factory));
    assertEquals((String) "3 foo", (String) _node.prettySourceString());
  }

  @Test
  public void testParseUnaryMethod() {
    final UnaryMethodNode _node;
    _node = ((UnaryMethodNode) Parser.factory.parseMethod_("foo self baz. ^bar"));
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), UnaryMethodNode.factory));
    assertEquals((String) "foo\n\tself baz.\n\t^bar", (String) _node.prettySourceString());
  }

  @Test
  public void testParseVariable() {
    final VariableNode _node;
    _node = ((VariableNode) Parser.factory.source_(" foo ").parseExpression());
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), VariableNode.factory));
    assertEquals((String) "foo", (String) _node.prettySourceString());
  }

  @Test
  public void testParseVariableDot() {
    final BlockNode _node;
    _node = ((BlockNode) Parser.factory.source_(" [foo. bar] ").parseExpression());
    assertTrue(st.gravel.support.jvm.ObjectExtensions.equals_(_node.factory(), BlockNode.factory));
    assertEquals((String) "\n[\nfoo.\nbar]", (String) _node.prettySourceString());
  }
}
TOP

Related Classes of st.gravel.support.compiler.ast.ParserTest

TOP
Copyright © 2018 www.massapi.com. 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.