comparison src/luan/interp/LuaParser.java @ 15:bb59d7ea223b

minor git-svn-id: https://luan-java.googlecode.com/svn/trunk@16 21e917c8-12df-6dd8-5cb6-c86387c605b9
author fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
date Thu, 29 Nov 2012 07:59:17 +0000
parents 2ddf85634d20
children 2a30281ef47c
comparison
equal deleted inserted replaced
14:2ddf85634d20 15:bb59d7ea223b
667 Rule Comment() { 667 Rule Comment() {
668 Var<Integer> n = new Var<Integer>(); 668 Var<Integer> n = new Var<Integer>();
669 return Sequence( 669 return Sequence(
670 "--[", 670 "--[",
671 ZeroOrMore('='), 671 ZeroOrMore('='),
672 setN(n), 672 n.set(matchLength()),
673 '[', 673 '[',
674 ZeroOrMore( 674 ZeroOrMore(
675 TestNot(CommentEnd(n)), 675 TestNot(CommentEnd(n)),
676 ANY 676 ANY
677 ), 677 ),
678 CommentEnd(n) 678 CommentEnd(n)
679 ); 679 );
680 } 680 }
681 681
682 Rule CommentEnd(Var<Integer> n) { 682 Rule CommentEnd(Var<Integer> n) {
683 return Sequence( ']', ZeroOrMore('='), eqN(n), ']' ); 683 return Sequence( ']', ZeroOrMore('='), n.get()==matchLength(), ']' );
684 }
685
686 boolean setN(Var<Integer> n) {
687 return n.set(matchLength());
688 }
689
690 boolean eqN(Var<Integer> n) {
691 return n.get()==matchLength();
692 } 684 }
693 685
694 // for debugging 686 // for debugging
695 boolean print(Object o) { 687 boolean print(Object o) {
696 System.out.println(o); 688 System.out.println(o);