PostfixNotationTokens#to_infix_notationでカンマを出力できるように

when TokenType::FUNCTION
	raise Error, 'オペランドが足りない' unless stack.size >= token.val.argc
	dest.list.insert( dest.list.size, Token.new( TokenType::RIGHT_BRACKETS ) )
	stack.pop if token.val.argc > 0
	( token.val.argc - 1 ).times do
		pos = stack.pop
		dest.list.insert( pos, Token.new( TokenType::COMMA ) )
	end
	dest.list.insert( stack.last || 0, Token.new( TokenType::LEFT_BRACKETS ) )
	dest.list.insert( stack.last || 0, token )
	stack.push( dest.list.size )

後は...

  • 関数呼び出し以外の()を変換時にエラーに
  • 関数名と同じ変数名についてどうするか
  • 浮動小数点以外の型( bool, null, int, string ... )
  • 遅延評価のある演算子(&&,||,?:)
  • 後置増分/減分演算子
  • 演算子・関数・リテラル増やす
  • a((1,2)) これも「不正なカンマ」とすべき