Sha256: 5f20daad93841ca65d1bc2a11a2ba632937c83bf8a9453648c61ef8fc02e0993

Contents?: true

Size: 1.01 KB

Versions: 5

Compression:

Stored size: 1.01 KB

Contents

#encoding: utf-8
require 'rspec'
require 'asciimath'
require_relative 'ast'

RSpec.configure do |c|
  c.include ::AsciiMath::ASTHelper
end

describe 'AsciiMath::Parser', :variant => :ast do
  it "should support custom symbols" do
    my_tokens_table = AsciiMath::SymbolTableBuilder.new
    AsciiMath::Parser.add_default_parser_symbols(my_tokens_table)
    my_tokens_table.add('mysymbol', :mysymbol, :symbol)

    parsed = AsciiMath::parse("a + mysymbol + b", my_tokens_table.build)
    expect(parsed.ast).to eq(seq(identifier('a'), symbol('+'), ::AsciiMath::AST::Symbol.new(:mysymbol, 'mysymbol'), symbol('+'), identifier('b')))
  end

  it "should support replacing standard symbols" do
    my_tokens_table = AsciiMath::SymbolTableBuilder.new
    AsciiMath::Parser.add_default_parser_symbols(my_tokens_table)
    my_tokens_table.add('+', :foo, :symbol)

    parsed = AsciiMath::parse("a + b", my_tokens_table.build)
    expect(parsed.ast).to eq(seq(identifier('a'), ::AsciiMath::AST::Symbol.new(:foo, '+'), identifier('b')))
  end
end

Version data entries

5 entries across 5 versions & 2 rubygems

Version Path
asciimath-2.0.3 spec/customisation_spec.rb
asciimath-2.0.2 spec/customisation_spec.rb
metanorma-cli-1.3.4 gems/ruby/2.6.0/gems/asciimath-2.0.1/spec/customisation_spec.rb
metanorma-cli-1.3.3.1 gems/ruby/2.6.0/gems/asciimath-2.0.1/spec/customisation_spec.rb
asciimath-2.0.1 spec/customisation_spec.rb