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:
Posts (Atom)