Skip to content

Commit 5c27d14

Browse files
committed
tweaks and readme
1 parent 68cb60c commit 5c27d14

File tree

3 files changed

+61
-34
lines changed

3 files changed

+61
-34
lines changed

FarserTest.php

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -6,78 +6,78 @@ class Farser_Test extends PHPUnit_Framework_TestCase {
66

77
public function testSimple()
88
{
9-
$lexer = new Farser();
10-
$lexer->setRaw('-- {$A}foo{/$A} --');
11-
$this->assertEquals('-- foo --', $lexer->parse());
9+
$farser = new Farser();
10+
$farser->setRaw('-- {$A}foo{/$A} --');
11+
$this->assertEquals('-- foo --', $farser->parse());
1212
}
1313

1414
public function testSimpleMultiline()
1515
{
16-
$lexer = new Farser();
17-
$lexer->setRaw("{\$A}\n\tfoo\n{/\$A}-");
18-
$this->assertEquals("\n\tfoo\n-", $lexer->parse());
16+
$farser = new Farser();
17+
$farser->setRaw("{\$A}\n\tfoo\n{/\$A}-");
18+
$this->assertEquals("\n\tfoo\n-", $farser->parse());
1919
}
2020

2121
public function testSimpleNested()
2222
{
23-
$lexer = new Farser();
24-
$lexer->setRaw('{$A}foo{$B}bar{/$B}{/$A}');
25-
$this->assertEquals('foobar', $lexer->parse());
23+
$farser = new Farser();
24+
$farser->setRaw('{$A}foo{$B}bar{/$B}{/$A}');
25+
$this->assertEquals('foobar', $farser->parse());
2626
}
2727

2828
public function testSimpleNestedVars()
2929
{
30-
$lexer = new Farser();
31-
$lexer->setRaw('{$A fiz="baz"}foo{$B}bar{fiz}{/$B}{/$A}');
32-
$this->assertEquals('foobarbaz', $lexer->parse());
30+
$farser = new Farser();
31+
$farser->setRaw('{$A fiz="baz"}foo{$B}bar{fiz}{/$B}{/$A}');
32+
$this->assertEquals('foobarbaz', $farser->parse());
3333
}
3434

3535
public function testSimpleNestedVarsScoped()
3636
{
37-
$lexer = new Farser();
38-
$lexer->setRaw('{$A fiz="baz" dir="ls"}foo{dir}{$B dir="dir"}bar{fiz}{dir}{/$B}{/$A}');
39-
$this->assertEquals('foolsbarbazdir', $lexer->parse());
37+
$farser = new Farser();
38+
$farser->setRaw('{$A fiz="baz" dir="ls"}foo{dir}{$B dir="dir"}bar{fiz}{dir}{/$B}{/$A}');
39+
$this->assertEquals('foolsbarbazdir', $farser->parse());
4040
}
4141

4242
/**
4343
* @expectedException NoClosingTagException
4444
*/
4545
public function testNoClosingTagException()
4646
{
47-
$lexer = new Farser();
48-
$lexer->setRaw('{$A}{foo}{$A}');
49-
$lexer->parse();
47+
$farser = new Farser();
48+
$farser->setRaw('{$A}{foo}{$A}');
49+
$farser->parse();
5050
}
5151

5252
public function testSimpleCallback()
5353
{
54-
$lexer = new Farser();
55-
$lexer->setRaw('{$A}{foo}{/$A}');
54+
$farser = new Farser();
55+
$farser->setRaw('{$A}{foo}{/$A}');
5656

57-
$lexer->addCallback('A', function (& $scope)
57+
$farser->addCallback('A', function (& $scope)
5858
{
5959
$scope['vars']['foo'] = 'baz';
6060
});
6161

62-
$this->assertEquals('baz', $lexer->parse());
62+
$this->assertEquals('baz', $farser->parse());
6363
}
6464

6565
public function testSimpleNestedCallback()
6666
{
67-
$lexer = new Farser();
68-
$lexer->setRaw('{$A}{foo}{$B}{foo}{dir}{/$B}{/$A}');
67+
$farser = new Farser();
68+
$farser->setRaw('{$A}{foo}{$B}{foo}{dir}{/$B}{/$A}');
6969

70-
$lexer->addCallback('A', function (& $scope)
70+
$farser->addCallback('A', function (& $scope)
7171
{
7272
$scope['vars']['foo'] = 'baz';
7373
});
7474

75-
$lexer->addCallback('B', function (& $scope)
75+
$farser->addCallback('B', function (& $scope)
7676
{
7777
$scope['vars']['dir'] = 'ls';
7878
});
7979

80-
$this->assertEquals('bazbazls', $lexer->parse());
80+
$this->assertEquals('bazbazls', $farser->parse());
8181
}
8282

8383
}

README

Lines changed: 0 additions & 7 deletions
This file was deleted.

README.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
Farser
2+
======
3+
4+
An experiment in parsing (in PHP) that's pretty simple minded
5+
and tries to implement nested scopes in a non-scary way.
6+
7+
And... look ma, no regex!
8+
9+
Turns
10+
11+
{$A fiz="baz" dir="ls"}foo{dir}{$B dir="dir"}bar{fiz}{dir}{/$B}{/$A}
12+
13+
into
14+
15+
foolsbarbazdir
16+
17+
also handles a simple callback mechanism
18+
19+
$farser = new Farser();
20+
$farser->setRaw('{$A}{foo}{$B}{foo}{dir}{/$B}{/$A}');
21+
22+
$farser->addCallback('A', function (& $scope)
23+
{
24+
$scope['vars']['foo'] = 'baz';
25+
});
26+
27+
$farser->addCallback('B', function (& $scope)
28+
{
29+
$scope['vars']['dir'] = 'ls';
30+
});
31+
32+
echo $farser->parse();
33+
34+
// output: bazbazls

0 commit comments

Comments
 (0)