! "
# $
% $ ! & '%! (
) * +
,
-
. & -
$
" &
/
/
0 $$
1
&
&
$$
2 3
!
$
4 3
4 5 & 6
7
&
"# $% & '( )
"# $% & '( *+ ) *
$$
"# $, "# $, *
2 3
, - ) , * , )
, - ) , * ,
+ 2 $ 8 2 9 2 $
,:
-: !
%:
: +
):
: +
: +
: ;"
2 $ <
- . ! $
/ ! ""
# 0 "" $$
1
2 * - . ! $
! #
3 . 1 + /
! # *
1 4 ! ""
# 5
1 *
#
! # 6
/ + #
# 6*
67 0 ""
# 4* $$
1 46
# 44
! # 45
3 . 1 4+8 1
- . ! $
/ ! ""
# 0 "" $$
1
=
! " .
+ 8 $
#
/ $$
!
; >
0 $$
?
! $ 0 $$
" " , - % "# $, "# $- "# $%
" " ! # -
" " 3 . 1 , / ) 1
" " / , #
" " 1 % & '( )
% & '( *+ ) *
" " , - ) , * ,
" " , , *
" " # - $
" " ! # ) 3 . 1 ) / ) 1
) ) #
- . ! $
/ ! ""
# 0 "" $$
1
,:
-: !
%:
: +
):
: +
: +
: ;"
@
/
/ $$
% $ ' (
A
;$2
B $
!
! " 2
"
!
;$2
/ $$
" 9 $ # " 9 $ " " 9 $ 1
" 9 $1 " 1
" 9 $ 1 !2 / 1 8
! $ " &
" " " :/ " 9
" " ; 2 <';= "/ 8
" " ! # "$ 3 "$>0?@=-,'A= "$ #
" " " $$$ " #
" " " "$ " *
" " B" 3 "
" " "$ 3 "$AC;;=<@ B" 3 ) "
" " : "$1 " 1
" " 1: "$1 " 1
" " "$ 3 "$-@%?< : ) 1: ) "
;$ /" 2
2 ! # ! # 8
$$$ 3 . 1 / " B 1
2 8
2 8
$$$ / B " B " #
8 D # "
: +
):
: +
;$2 .#
" " " :/ " 9
" " ; 2 <';= "/ 8
" " ! " "$" 1 ! "
" " "/ "$" 1 "/
" " "$ 3 "/ "# $, EF"/ "$ #
" " 1 "$ 3 "/ "# $, FD
"$ B 1 " 9 ! " "/ 1
E! DEF"/ # 0 G FDEH! D
2 " 4 E! D
"/ * EF"/
! #
/ 5 #
# I
0 G
#
! # 6
"/ 5 FD
" 8 EH! D
,: : + : +
1
2 $ <
E! "D
E! 1D
E " D;. > B# EH " D
EH! 1D
EB 1.D
E/" 1 J D
2 J 8
E" D
E ! 22 $! 88 D22 $ # 88EH D
EH" D
2 1 8
EH/"D
E! D;. > B# EH! D
22 J B" 88
2K K8
EHB 1.D
EH! "D
. $
/
+2
2
,
7
# $ ;
$ /B
/
%
& $
; 8 $
+2 ! " # '+!#(
5 6 +!# *
; 9L
2 9 8
2 J "/ 8
22 J "/ 88
2 1 8
2 1 8
2 9 ; 9L
2
9# 9
9
2
9# J "/
J B" J "/
9
8
9
88
J 2 9 22 8
26 4 58
2I 7 +888
":
C 9 9,9D
C1979 9D
C=9?9@9D
=
# $ 2
/ & E F G
# " 2 & $
.# 9 H 9 /!I9 # H9 >
, $
2 $$$ 8 J ! $
22 $$$ 88 J ;"
2K $$$ K8 J / $$
?
! $ 0 $$
" " , M A A A "# $, "# $M "# $A "# $A "# $A
" " / 1 # / "# $A # 1
" " A ,2
9 1 9 A , 2 22 2K
D # / 2$$$ 9 # / 1 9 $$$8
J B" 22 1 J B" A , 88 * 88
D # / 2$$$ J B" 9# J " $$$8
2K , K8 * K8
D # / ! 1 "" N 1
B" 3 , 2
1 A A , 8 9#
8 M B 1. 2 1 8
D # / 2$$$ 2 9# 9 . $$$8 $$$8
B 1. M 9 ) M J B" ) M )
M B" 3
M B 1. . #
8
,: : + : + : ;"
M: 4 $ ): : +
@
/ +!#
" " #" 9 $$$
" " "# $ ! #" 9
" " !/ 3 28 ! /"
K 1
" " 1 B" 3 )
1 9 !
!/ 3 K !/ 3 ) B" 3
" 1 J B" !
!/ 3 K !/ 3 ) J " B" 3 J
" 1 !
# OB" 3$ 9# O 1 11 O !/ 3 O
1
1
# B" $ !/ 3 ! 1 1 #"
; .
;$
" " / "#
/ "# $, / #/ 1 9
#/ #/ L /B 1 9
" " " / #/ L /B
$ , = " 1L
" / )
1
1
" " "# $A "# $,2
$$$
J B" 22 1 J B" A , 88 *
88 ) "# 88 9# 1
D , = " PL 88 9# 1
$$$
: + : +
): : ;"
: +
2 $ <,
## $ #
3 J # 1
*
1 ## $ /
/
*
1
% $ ! &
! $ $
## $ /
/
*
1
"# $ ! :
/ 2 1 9
1 /"
# *8
2 1 9
1 /"
# 48
2 1 9 *
# 8
1
,
K
" $ 8 9 2 9
8 2 $ L
! "
# $
% $ ! &
1
# M
) -
! : :NN& > $N
: :NN& > $N
# " : :NN& > $N "

Practical LPeg - Lua Workshop 2016

  • 2.
    ! " # $ %$ ! & '%! ( ) * +
  • 3.
    , - . & - $ "& / / 0 $$
  • 4.
  • 5.
    7 & "# $% &'( ) "# $% & '( *+ ) * $$ "# $, "# $, * 2 3 , - ) , * , ) , - ) , * , + 2 $ 8 2 9 2 $ ,: -: ! %: : + ): : + : + : ;"
  • 6.
    2 $ < -. ! $ / ! "" # 0 "" $$ 1 2 * - . ! $ ! # 3 . 1 + / ! # * 1 4 ! "" # 5 1 * # ! # 6 / + # # 6* 67 0 "" # 4* $$ 1 46 # 44 ! # 45 3 . 1 4+8 1 - . ! $ / ! "" # 0 "" $$ 1
  • 7.
    = ! " . +8 $ # / $$ ! ; > 0 $$
  • 8.
    ? ! $ 0$$ " " , - % "# $, "# $- "# $% " " ! # - " " 3 . 1 , / ) 1 " " / , # " " 1 % & '( ) % & '( *+ ) * " " , - ) , * , " " , , * " " # - $ " " ! # ) 3 . 1 ) / ) 1 ) ) # - . ! $ / ! "" # 0 "" $$ 1 ,: -: ! %: : + ): : + : + : ;"
  • 9.
    @ / / $$ % $' ( A ;$2 B $
  • 10.
    ! ! " 2 " ! ;$2 /$$ " 9 $ # " 9 $ " " 9 $ 1 " 9 $1 " 1 " 9 $ 1 !2 / 1 8
  • 11.
    ! $ "& " " " :/ " 9 " " ; 2 <';= "/ 8 " " ! # "$ 3 "$>0?@=-,'A= "$ # " " " $$$ " # " " " "$ " * " " B" 3 " " " "$ 3 "$AC;;=<@ B" 3 ) " " " : "$1 " 1 " " 1: "$1 " 1 " " "$ 3 "$-@%?< : ) 1: ) " ;$ /" 2 2 ! # ! # 8 $$$ 3 . 1 / " B 1 2 8 2 8 $$$ / B " B " # 8 D # " : + ): : +
  • 12.
    ;$2 .# " "" :/ " 9 " " ; 2 <';= "/ 8 " " ! " "$" 1 ! " " " "/ "$" 1 "/ " " "$ 3 "/ "# $, EF"/ "$ # " " 1 "$ 3 "/ "# $, FD "$ B 1 " 9 ! " "/ 1 E! DEF"/ # 0 G FDEH! D 2 " 4 E! D "/ * EF"/ ! # / 5 # # I 0 G # ! # 6 "/ 5 FD " 8 EH! D ,: : + : +
  • 13.
    1 2 $ < E!"D E! 1D E " D;. > B# EH " D EH! 1D EB 1.D E/" 1 J D 2 J 8 E" D E ! 22 $! 88 D22 $ # 88EH D EH" D 2 1 8 EH/"D E! D;. > B# EH! D 22 J B" 88 2K K8 EHB 1.D EH! "D . $ / +2 2 ,
  • 14.
    7 # $ ; $/B / % & $ ; 8 $ +2 ! " # '+!#( 5 6 +!# *
  • 15.
    ; 9L 2 98 2 J "/ 8 22 J "/ 88 2 1 8 2 1 8 2 9 ; 9L 2 9# 9 9 2 9# J "/ J B" J "/ 9 8 9 88 J 2 9 22 8 26 4 58 2I 7 +888 ": C 9 9,9D C1979 9D C=9?9@9D
  • 16.
    = # $ 2 /& E F G # " 2 & $ .# 9 H 9 /!I9 # H9 > , $ 2 $$$ 8 J ! $ 22 $$$ 88 J ;" 2K $$$ K8 J / $$
  • 17.
    ? ! $ 0$$ " " , M A A A "# $, "# $M "# $A "# $A "# $A " " / 1 # / "# $A # 1 " " A ,2 9 1 9 A , 2 22 2K D # / 2$$$ 9 # / 1 9 $$$8 J B" 22 1 J B" A , 88 * 88 D # / 2$$$ J B" 9# J " $$$8 2K , K8 * K8 D # / ! 1 "" N 1 B" 3 , 2 1 A A , 8 9# 8 M B 1. 2 1 8 D # / 2$$$ 2 9# 9 . $$$8 $$$8 B 1. M 9 ) M J B" ) M ) M B" 3 M B 1. . # 8 ,: : + : + : ;" M: 4 $ ): : +
  • 18.
    @ / +!# " "#" 9 $$$ " " "# $ ! #" 9 " " !/ 3 28 ! /" K 1 " " 1 B" 3 ) 1 9 ! !/ 3 K !/ 3 ) B" 3 " 1 J B" ! !/ 3 K !/ 3 ) J " B" 3 J " 1 ! # OB" 3$ 9# O 1 11 O !/ 3 O 1 1 # B" $ !/ 3 ! 1 1 #"
  • 19.
    ; . ;$ " "/ "# / "# $, / #/ 1 9 #/ #/ L /B 1 9 " " " / #/ L /B $ , = " 1L " / ) 1 1 " " "# $A "# $,2 $$$ J B" 22 1 J B" A , 88 * 88 ) "# 88 9# 1 D , = " PL 88 9# 1 $$$ : + : + ): : ;" : +
  • 20.
    2 $ <, ##$ # 3 J # 1 * 1 ## $ / / * 1
  • 21.
    % $ !& ! $ $ ## $ / / * 1 "# $ ! : / 2 1 9 1 /" # *8 2 1 9 1 /" # 48 2 1 9 * # 8 1
  • 22.
    , K " $ 89 2 9 8 2 $ L ! " # $ % $ ! &
  • 23.
    1 # M ) - !: :NN& > $N : :NN& > $N # " : :NN& > $N "