Ejemplo n.º 1
0
        public void InvalidInput()
        {
            var t_Rule = new CreateExpressionRule(
                _CreateAddressParseRule(),
                _ConstAddressCreator());

            var t_Expression = t_Rule.Match(CreateState(new Token(TokenType.Keyword, "Foo")));

            t_Expression.HasError().Should().BeTrue();
        }
Ejemplo n.º 2
0
        public void UnmatchedCreationFunction()
        {
            var t_Rule = new CreateExpressionRule(
                _CreateAddressParseRule(),
                _ConstAddressCreator());

            var t_State = t_Rule.Match(_CreateRelativeAddress());

            t_State.HasError().Should().BeTrue();
        }
Ejemplo n.º 3
0
        public void CreateConstAddressExpression()
        {
            var t_Rule = new CreateExpressionRule(
                _CreateAddressParseRule(),
                _ConstAddressCreator());

            var t_Expression = t_Rule.Match(_CreateConstAddressState());

            t_Expression.HasError().Should().BeFalse();

            var t_Expressions = t_Expression.Value.Expressions.ToList();

            t_Expressions[0].Should().BeOfType <ConstAddressExpression>();
            t_Expressions[0].ToType <ConstAddressExpression>()
            .Literal.Literal.Text.Should().Be("200");
        }
Ejemplo n.º 4
0
        public void CreateVariantAddressExpression()
        {
            var t_Rule = new CreateExpressionRule(
                _CreateAddressParseRule(),
                _CreateCreators());

            var t_Expression = t_Rule.Match(_CreateConstAddressState());

            t_Expression.HasError().Should().BeFalse();
            t_Expression.Value.Expressions.Should().AllBeOfType <ConstAddressExpression>();
            t_Expression.Value.Expressions.Should()
            .Contain(E => E.ToType <ConstAddressExpression>().Literal.Literal.Text == "200");

            t_Expression = t_Rule.Match(_CreateRelativeAddress());
            t_Expression.HasError().Should().BeFalse();
            t_Expression.Value.Expressions.Should().AllBeOfType <RelativeAddressExpression>();

            var t_Relative = t_Expression.Value.Expressions.First().ToType <RelativeAddressExpression>();

            t_Relative.Identifier.Identifier.Text.Should().Be("RAM");
            t_Relative.Operator.Operator.Text.Should().Be("+");
            t_Relative.Literal.Literal.Text.Should().Be("4");
        }