You want to run until a certain condition is satisfied - because, once you get to an advanced level and you're analyzing the 'class' rule, you're up against subtle fails..
python -m pdb SynAnal Square/SquareTokens.xml
> break 115 , rule == 'paramList'
> c
Now, you get straight to the action. Nice?
Check out some Python performance tips here : https://wiki.python.org/moin/PythonSpeed
Wednesday, May 17, 2017
Tuesday, May 9, 2017
Jack Grammar - Only Rules Support * and ? - Not Primitives
After coding, I had to use Excel to see this - rather than comb through my text. The power of visualization..
Part of it is doing a rule using a formula : (in the box, type)
=AND( ISNUMBER(B2), B2 > 1 )
 
Part of it is doing a rule using a formula : (in the box, type)
=AND( ISNUMBER(B2), B2 > 1 )
| 
class | 
1 | 
1 | 
1 | 
3 | 
3 | 
1 | ||
| 
class | 
 keyword  | 
 identifier  | 
 symbol  | 
 rule  | 
 rule  | 
 symbol  | ||
| 
classVarDec | 
1 | 
1 | 
1 | 
3 | 
1 | |||
| 
classVarDec | 
 keyword  | 
 rule  | 
 identifier  | 
 rule  | 
 symbol  | |||
| 
addlVarDec | 
1 | 
1 | ||||||
| 
addlVarDec | 
 symbol  | 
 identifier  | ||||||
| 
type | 
1 | |||||||
| 
type | 
 keyword||identifier  | |||||||
| 
subroutineDec | 
1 | 
1 | 
1 | 
1 | 
1 | 
1 | 
1 | |
| 
subroutineDec | 
 keyword  | 
 keyword||rule  | 
 identifier  | 
 symbol  | 
 rule  | 
 symbol  | 
 rule  | |
| 
parameterList | 
2 | |||||||
| 
parameterList | 
 rule  | |||||||
| 
params | 
1 | 
3 | ||||||
| 
params | 
 rule  | 
 rule  | ||||||
| 
param | 
1 | 
1 | ||||||
| 
param | 
 rule  | 
 identifier  | ||||||
| 
addlParam | 
1 | 
1 | ||||||
| 
addlParam | 
 symbol  | 
 identifier  | ||||||
| 
subroutineBody | 
1 | 
3 | 
1 | 
1 | ||||
| 
subroutineBody | 
 symbol  | 
 rule  | 
 rule  | 
 symbol  | ||||
| 
varDec | 
1 | 
1 | 
1 | 
3 | 
1 | |||
| 
varDec | 
 keyword  | 
 rule  | 
 identifier  | 
 rule  | 
 symbol  | |||
| 
statements | 
3 | |||||||
| 
statements | 
 rule  | |||||||
| 
statement | 
1 | |||||||
| 
statement | 
 rule  | |||||||
| 
letStatement | 
1 | 
1 | 
2 | 
1 | 
1 | 
1 | ||
| 
letStatement | 
 keyword  | 
 identifier  | 
 rule  | 
 symbol  | 
 rule  | 
 symbol  | ||
| 
index | 
1 | 
1 | 
1 | |||||
| 
index | 
 symbol  | 
 rule  | 
 symbol  | |||||
| 
ifStatement | 
1 | 
1 | 
1 | 
1 | 
1 | 
1 | 
1 | 
2 | 
| 
ifStatement | 
 keyword  | 
 symbol  | 
 rule  | 
 symbol  | 
 symbol  | 
 rule  | 
 symbol  | 
 rule  | 
| 
elseBlock | 
1 | 
1 | 
1 | 
1 | ||||
| 
elseBlock | 
 keyword  | 
 symbol  | 
 rule  | 
 symbol  | ||||
| 
whileStatement | 
1 | 
 expression  | 
 )  | 
1 | 
1 | 
1 | ||
| 
whileStatement | 
 keyword  | 
 symbol  | 
 rule  | 
 symbol  | 
 symbol  | 
 rule  | 
 symbol  | |
| 
doStatement | 
1 | 
1 | 
1 | |||||
| 
doStatement | 
 keyword  | 
 rule  | 
 symbol  | |||||
| 
returnStatement | 
1 | 
2 | 
1 | |||||
| 
returnStatement | 
 keyword  | 
 rule  | 
 symbol  | |||||
| 
expression | 
1 | 
3 | ||||||
| 
expression | 
 rule  | 
 rule  | ||||||
| 
subExp | 
1 | 
1 | ||||||
| 
subExp | 
 symbol  | 
 rule  | ||||||
| 
term | 
1 | |||||||
| 
term | 
 rule  | |||||||
| 
constant | 
1 | |||||||
| 
constant | 
 integerConstant||stringConstant  | |||||||
| 
arrayElem | 
1 | 
1 | 
1 | 
1 | ||||
| 
arrayElem | 
 rule  | 
 symbol  | 
 rule  | 
 symbol  | ||||
| 
paranthExp | 
1 | 
1 | ||||||
| 
paranthExp | 
 symbol  | 
 rule  | 
 symbol  | |||||
| 
unOpTerm | 
1 | 
1 | ||||||
| 
unOpTerm | 
 symbol  | 
 rule  | ||||||
| 
subroutineCall | 
1 | |||||||
| 
subroutineCall | 
 rule  | |||||||
| 
simpleCall | 
1 | 
1 | 
1 | 
1 | ||||
| 
simpleCall | 
 identifier  | 
 symbol  | 
 rule  | 
 symbol  | ||||
| 
classMethCall | 
1 | 
1 | 
1 | 
1 | 
1 | 
1 | ||
| 
classMethCall | 
 identifier  | 
 symbol  | 
 identifier  | 
 symbol  | 
 rule  | 
 symbol  | ||
| 
expressionList | 
2 | |||||||
| 
expressionList | 
 rule  | |||||||
| 
expressions | 
1 | 
3 | ||||||
| 
expressions | 
 rule  | 
 rule  | ||||||
| 
addlExpr | 
1 | 
1 | ||||||
| 
addlExpr | 
 symbol  | 
 rule  | ||||||
| 
keywordConstant | 
 true|false|null|this  | |||||||
| 
keywordConstant | 
 keyword  | 
Subscribe to:
Comments (Atom)
