================
No arguments
================

afl
 afl

---

(statements
  (arged_stmt (cmd_identifier))
  (arged_stmt (cmd_identifier)))

=============
One argument
=============

af 0xdeadbeef

---

(statements
  (arged_stmt (cmd_identifier)
     (args (arg (arg_identifier)))))


==============================
Semi-colon separated statements
==============================

afl;af 0xdeadbeef  ; afl

---

(statements
  (arged_stmt (cmd_identifier))
  (arged_stmt (cmd_identifier)
    (args (arg (arg_identifier))))
  (arged_stmt (cmd_identifier)))


=========================
Newline separate statements
=========================

afl
af 0xdeadbeef

---

(statements
  (arged_stmt (cmd_identifier))
  (arged_stmt (cmd_identifier)
    (args (arg (arg_identifier)))))


=========================
?v not valid
=========================

?v 3

---

(statements
      (help_stmt
        (cmd_identifier))
      (ERROR))


======================
Percentage mark statements
======================

%
% x
%%
%% cmd
%x hello
e? cfg.oldshell

---

(statements

  (arged_stmt (cmd_identifier))
  (arged_stmt (cmd_identifier)
    (args (arg (arg_identifier))))
  (arged_stmt (cmd_identifier))
  (arged_stmt (cmd_identifier)
    (args (arg (arg_identifier))))
  (arged_stmt (cmd_identifier)
    (args (arg (arg_identifier))))
  (arged_stmt (cmd_identifier)
    (args (arg (arg_identifier)))))


===============
Search statements
===============

/x 90
/v4 0xdead

---

(statements
  (arged_stmt (cmd_identifier)
    (args (arg (arg_identifier))))
  (arged_stmt (cmd_identifier)
    (args (arg (arg_identifier)))))


========================
Different output formats
========================

afl*
afl+
aflj

---

(statements
  (arged_stmt (cmd_identifier))
  (arged_stmt (cmd_identifier))
  (arged_stmt (cmd_identifier)))


=============
Help statements
=============

?
a?
$?
*?
afl?
(?
=?
/v?
/v4?
|?
.?
./?
@?
@@?
@@@?
~?
?*
p?*
&?
pf??
pf???
>?
.(?

---

(statements
  (help_stmt (cmd_identifier))
  (help_stmt (cmd_identifier))
  (help_stmt (cmd_identifier))
  (help_stmt (cmd_identifier))
  (help_stmt (cmd_identifier))
  (help_stmt (cmd_identifier))
  (help_stmt (cmd_identifier))
  (help_stmt (cmd_identifier))
  (help_stmt (cmd_identifier))
  (help_stmt (cmd_identifier))
  (help_stmt (cmd_identifier))
  (help_stmt (cmd_identifier))
  (help_stmt (cmd_identifier))
  (help_stmt (cmd_identifier))
  (help_stmt (cmd_identifier))
  (help_stmt (cmd_identifier))
  (help_stmt (cmd_identifier))
  (help_stmt (cmd_identifier))
  (help_stmt (cmd_identifier))
  (help_stmt (cmd_identifier))
  (help_stmt (cmd_identifier))
  (help_stmt (cmd_identifier))
  (help_stmt (cmd_identifier)))


===============================
Command with concatenation args
===============================

echo Hello" World"'!' And All

---

(statements
  (arged_stmt (cmd_identifier)
    (args
      (arg
	(concatenation
	  (arg_identifier)
	  (double_quoted_arg)
	  (single_quoted_arg)))
      (arg (arg_identifier))
      (arg (arg_identifier)))))


=============
Tasks command
=============

& echo Hello
&& 1
&=
&

---

(statements
  (arged_stmt (cmd_identifier)
	(args
		(arg (arg_identifier))
		(arg (arg_identifier))))
  (arged_stmt (cmd_identifier)
    (args (arg (arg_identifier))))
  (arged_stmt (cmd_identifier))
  (arged_stmt (cmd_identifier)))


==============
Arg with (...)
==============

echo Hello(World)

---

(statements
  (arged_stmt (cmd_identifier)
    (args
      (arg
        (concatenation
          (arg_identifier)
          (args
            (arg_identifier)
            (args (arg (arg_identifier)))
            (arg_identifier)))))))


============================
Expressions with (...)
============================

%v (100 + (2 - 3)) * 2

---

(statements
  (arged_stmt (cmd_identifier)
    (args
      (arg (args
             (arg_identifier)
             (args
               (arg (arg_identifier))
               (arg (arg_identifier))
               (arg (args
                      (arg_identifier)
                      (args
                        (arg (arg_identifier))
                        (arg (arg_identifier))
                        (arg (arg_identifier)))
                      (arg_identifier))))
             (arg_identifier)))
      (arg (arg_identifier))
      (arg (arg_identifier)))))


==========
Arg with $
==========

%v $$
s $
%v $*
%v $$$ test
%v $alias
echo hello$alias
echo test

---

(statements
  (arged_stmt (cmd_identifier)
    (args (arg (arg_identifier))))
  (arged_stmt (cmd_identifier)
    (args (arg (arg_identifier))))
  (arged_stmt (cmd_identifier)
    (args (arg (arg_identifier))))
  (arged_stmt (cmd_identifier)
    (args
      (arg (arg_identifier))
      (arg (arg_identifier))))
  (arged_stmt (cmd_identifier)
    (args (arg (arg_identifier))))
  (arged_stmt (cmd_identifier)
    (args (arg (arg_identifier))))
  (arged_stmt (cmd_identifier)
    (args (arg (arg_identifier)))))


==========
Arg with /
==========

md /
md /root
md /root/

---

(statements
  (arged_stmt (cmd_identifier)
    (args (arg (arg_identifier))))
  (arged_stmt (cmd_identifier)
    (args (arg (arg_identifier))))
  (arged_stmt (cmd_identifier)
    (args (arg (arg_identifier)))))


=========
< command
=========

<hello
<?

---

(statements
  (arged_stmt (cmd_identifier)
    (args (arg (arg_identifier))))
  (help_stmt (cmd_identifier)))


=============================
Escaped char in cmdidentifier
=============================

aa\ f
\nff
aaa\#
aaa\ 
pd\@0xdeadbeef

---

(statements
  (arged_stmt (cmd_identifier))
  (arged_stmt (cmd_identifier))
  (arged_stmt (cmd_identifier))
  (arged_stmt (cmd_identifier))
  (arged_stmt (cmd_identifier)))

===========
UTF-8 chars
===========

rz-find -S واسع bins/pe/testapp-msvc64.exe

---

(statements
  (arged_stmt (cmd_identifier)
    (args
      (arg (arg_identifier))
      (arg (arg_identifier))
      (arg (arg_identifier)))))

===============
.- with no args
===============

.-

---

(statements
  (arged_stmt (cmd_identifier)))
