annotate test_jsscan.py @ 0:daa1c6d996f3

Origination.
author Atul Varma <avarma@mozilla.com>
date Thu, 22 Apr 2010 13:11:51 -0700
parents
children f82ff2c61c06
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
1 """
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
2 C-style comments:
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
3
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
4 >>> tokenize('/* hello */')
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
5 ('c_comment', '/* hello */', (1, 0))
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
6
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
7 C++-style comments:
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
8
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
9 >>> tokenize('// hello')
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
10 ('cpp_comment', '// hello', (1, 0))
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
11
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
12 Variable definitions:
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
13
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
14 >>> tokenize(' var k = 1;')
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
15 ('name', 'var', (1, 2))
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
16 ('name', 'k', (1, 6))
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
17 ('whitespace', ' ', (1, 7))
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
18 ('literal', '=', (1, 8))
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
19 ('whitespace', ' ', (1, 9))
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
20 ('digits', '1', (1, 10))
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
21 ('literal', ';', (1, 11))
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
22
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
23 Escaped double-quoted strings:
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
24
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
25 >>> tokenize(r'"i say \\"tomato\\""')
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
26 ('string', '"i say \\\\"tomato\\\\""', (1, 0))
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
27
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
28 Unterminated double-quoted strings:
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
29
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
30 >>> tokenize(r'"i say \\"tomato\\"')
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
31 Traceback (most recent call last):
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
32 ...
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
33 TokenizationError: unrecognized token '"' @ line 1, char 0
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
34 """
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
35
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
36 import doctest
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
37
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
38 from jsscan import *
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
39
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
40 def tokenize(string):
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
41 for token in Tokenizer(string).tokenize():
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
42 print token
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
43
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
44 if __name__ == '__main__':
daa1c6d996f3 Origination.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
45 doctest.testmod(verbose=True)