Eagle Legacy Modernization, LLC

Lisp Grammar

Main program: Lisp_Program

Lisp syntax:

 Count  Terminals:
29 Lisp_Character: character literal
3 Lisp_Comment: ; comment to end of line
179 Lisp_Function_Definition: An identifier
3,316 Lisp_Identifier_Reference: An identifier
134 Lisp_Literal: quotes:" escape:\ doubled:no multiline:yes
273 Lisp_Number: exponent_chars:none suffix_chars:none trailing_period:yes ignore_char:none
309 Lisp_Parameter_Definition: An identifier
158 Lisp_Variable_Definition: An identifier
 Count  Statistics(*) Tokens:
23 all all 3.13 all Lisp_CondFunction: '(' ("cond") Lisp_CondPair* ')'
72 all all 1.18 all |   Lisp_CondPair: '(' Lisp_Expression Lisp_Expression* ')'
11 all all all all 1.00 all Lisp_DefmacroFunction: '(' "defmacro" Lisp_Function_Definition Lisp_Expression Lisp_Expression* ')'
61 all all all all all Lisp_DefparameterFunction: '(' "defparameter" Lisp_Parameter_Definition Lisp_Expression ')'
168 all all 1% all all 1.91(77%) all 1.43 all Lisp_DefunFunction: '(' "defun" [','] Lisp_Function_Definition '(' [Lisp_ParamDef]* ')' Lisp_Expression* ')'
248 all all |   Lisp_ParamDef: ["&REST"] Lisp_Parameter_Definition
    Lisp_DoFunction: '(' "do" '(' [Lisp_DoVariables] ')' '(' Lisp_Expression ')' Lisp_Expression* ')'
    |   Lisp_DoVariables: '(' Lisp_Variable_Definition Lisp_Expression [Lisp_Expression] ')'
18 all all all 2.33 all Lisp_FormatFunction: '(' "format" "T" Lisp_Expression* ')'
75 all all all all all all Lisp_IfFunction: '(' "if" Lisp_Expression Lisp_Expression [Lisp_Expression] ')'
87 all all 17% all 1.51 all Lisp_LetFunction: '(' ("let"|"prog") ['*'] Lisp_LetVariables Lisp_Expression* ')'
128 all 3% all all all |   Lisp_LetVar: '(' [','] Lisp_Variable_Definition Lisp_Expression ')'
87 all 1.47(all) all |   Lisp_LetVariables: '(' [Lisp_LetVar]* ')'
34 all all all all Lisp_LoopFunction: '(' "loop" Lisp_LoopType ')'
34 (97% | 3%) |   Lisp_LoopType: (Lisp_LoopFancy | Lisp_Expression)
33 3% 1.46(85%) 1.24 |   |   Lisp_LoopFancy: [Lisp_LoopNamed] [Lisp_LoopVariableClause]* Lisp_LoopMainClause*
41 (none | 32% | 2% | 41% | 5% | 5% | 15%) |   |   |   Lisp_LoopMainClause: (Lisp_LoopInitialFinal | Lisp_LoopUnconditionalDo | Lisp_LoopUnconditionalReturn | Lisp_LoopListAccumulation | Lisp_LoopNumericAccumulation | Lisp_LoopConditional | Lisp_LoopTerminationTest)
1 all all |   |   |   Lisp_LoopNamed: "named" Lisp_Variable_Definition
41 (none | 2% | 98%) |   |   |   Lisp_LoopVariableClause: (Lisp_LoopInitialFinal | Lisp_LoopWith | Lisp_LoopForAsClause)
121 all all all all Lisp_PrintFunction: '(' ("print"|"princ") Lisp_Expression ')'
1 all all all all Lisp_ReturnFunction: '(' "return" [Lisp_Expression] ')'
29 all all all all all Lisp_SetfFunction: '(' ("setf") Lisp_Variable_Definition Lisp_Expression ')'
6,692 (0% | 0% | 0% | 1% | 1% | 2% | 0% | 4% | 2% | 0% | 0% | 49% | 25% | 0% | 0% | 1% | 3% | none | 0% | 1% | 1% | 1% | 2% | 0% | 0% | 1% | 0% | 1% | 0% | 1% | 0% | 0% | 0% | 0% | 0% | 1% | 0% | 0% | 0%) Lisp_Expression: (Lisp_Ampersand | Lisp_CharString | Lisp_Colon | Lisp_Comma | Lisp_Hash | Lisp_QuoteList | Lisp_Tick | Lisp_Number | Lisp_Literal | Lisp_Character | ("."|"?"|"<"|"<="|"="|">="|">") | Lisp_Variable | Lisp_List | Lisp_CondFunction | Lisp_DefmacroFunction | Lisp_DefparameterFunction | Lisp_DefunFunction | Lisp_DoFunction | Lisp_FormatFunction | Lisp_IfFunction | Lisp_LetFunction | Lisp_LoopFunction | Lisp_PrintFunction | Lisp_SetfFunction | Lisp_ReturnFunction | Lisp_AdditionOperator | Lisp_AndOperator | Lisp_Builtins | Lisp_ConcatenateOperator | Lisp_IncrementOperator | Lisp_LengthOperator | Lisp_MultiplicationOperator | Lisp_NotOperator | Lisp_NthOperator | Lisp_OrOperator | Lisp_RelationalOperator | Lisp_RemainderOperator | Lisp_SubseqOperator | Lisp_TruncateOperator)
8 all all |   Lisp_Ampersand: '&' Lisp_Expression
12 all all all all none |   Lisp_CharString: ("char"|"string") ['/'] ['<'] ['>'] ['=']
25 all all |   Lisp_Colon: ':' Lisp_Expression
52 all all all |   Lisp_Comma: ',' ['@'] Lisp_Expression
47 all all |   Lisp_Hash: '#' Lisp_Expression
133 all all |   Lisp_QuoteList: ''' Lisp_Expression
16 all all |   Lisp_Tick: '`' Lisp_Expression
1,663 all 2.63(99%) all Lisp_List: '(' [Lisp_Expression]* ')'
15 18.00 Lisp_Program: Lisp_SExprOrComment*
270 (99% | 1%) Lisp_SExprOrComment: (Lisp_Expression | Lisp_Comment)
4 all all Lisp_Type: ''' ("STRING")
3,311 (0% | 100%) Lisp_Variable: (Lisp_VariableWithDot | Lisp_Identifier_Reference)
5 all all all all all |   Lisp_VariableWithDot: '(' Lisp_Identifier_Reference '.' Lisp_Identifier_Reference ')'
2 all all none none all Lisp_LoopConditional: ("if"|"when"|"unless") Lisp_Expression [Lisp_LoopMoreSelectableClause]* [Lisp_LoopConditionalElse] ["end"]
    |   Lisp_LoopConditionalElse: "else" Lisp_Expression [Lisp_LoopMoreSelectableClause]*
    |   Lisp_LoopMoreSelectableClause: "and" Lisp_Expression
40 all all 1.05 Lisp_LoopForAsClause: ("for"|"as") Lisp_Variable Lisp_LoopForClause*
42 (79% | 21%) |   Lisp_LoopForClause: (Lisp_ForArithmetic | Lisp_ForEqualsThen)
33 all all |   |   Lisp_ForArithmetic: ("across"|"below"|"from"|"in"|"on"|"to") Lisp_Expression
9 all all 22% |   |   Lisp_ForEqualsThen: '=' Lisp_Expression [Lisp_LoopForThen]
2 all all |   |   |   Lisp_LoopForThen: "then" Lisp_Expression
    Lisp_LoopInitialFinal: ("initially"|"finally") Lisp_Expression
17 all all Lisp_LoopListAccumulation: ("append"|"appenging"|"collect"|"collecting"|"nconc"|"nconcing") Lisp_Expression
2 all all none Lisp_LoopNumericAccumulation: ("count"|"counting"|"maximize"|"maximizing"|"minimize"|"minimizing"|"sum"|"summing") Lisp_Expression [Lisp_LoopAccumulateInto]
    |   Lisp_LoopAccumulateInto: "into" Lisp_Variable
6 all all Lisp_LoopTerminationTest: ("while"|"until"|"repeat"|"always"|"never"|"thereis") Lisp_Expression
13 all 1.31 Lisp_LoopUnconditionalDo: ("do"|"doing") Lisp_Expression*
1 all all Lisp_LoopUnconditionalReturn: "return" Lisp_Expression
1 all none Lisp_LoopWith: Lisp_LoopWithElement [Lisp_LoopMoreWith]*
    |   Lisp_LoopMoreWith: "and" Lisp_LoopWithElement
1 all all all |   Lisp_LoopWithElement: "with" [Lisp_Expression] [Lisp_LoopWithValue]
1 all all |   |   Lisp_LoopWithValue: '=' Lisp_Expression
56 all all 2.59 all Lisp_AdditionOperator: '(' ("+"|"++"|"+++"|"-") Lisp_Expression* ')'
19 all all 2.16 all Lisp_AndOperator: '(' "AND" Lisp_Expression* ')'
87 all Lisp_Builtins: ("T"|"NIL")
4 all all all 2.50 all Lisp_ConcatenateOperator: '(' "CONCATENATE" Lisp_Type Lisp_Expression* ')'
44 all all all all Lisp_IncrementOperator: '(' ("1+"|"1-") Lisp_Expression ')'
7 all all all all Lisp_LengthOperator: '(' "LENGTH" Lisp_Expression ')'
27 all all 2.22 all Lisp_MultiplicationOperator: '(' ("*"|"**"|"***"|"/"|"//"|"///") Lisp_Expression* ')'
21 all all all all Lisp_NotOperator: '(' "NOT" Lisp_Expression ')'
6 all all all all all Lisp_NthOperator: '(' "NTH" Lisp_Expression Lisp_Expression ')'
10 all all 2.00 all Lisp_OrOperator: '(' "OR" Lisp_Expression* ')'
77 all all 2.00 all Lisp_RelationalOperator: '(' Lisp_RelOp Lisp_Expression* ')'
77 (55% | 45%) |   Lisp_RelOp: ((">"|">="|"="|"/="|"<"|"<=") | ("EQ"|"EQUAL"))
10 all all all all all Lisp_RemainderOperator: '(' ("MOD"|"REM") Lisp_Expression Lisp_Expression ')'
6 all all all all all all Lisp_SubseqOperator: '(' "SUBSEQ" Lisp_Expression Lisp_Expression Lisp_Expression ')'
3 all all all all Lisp_TruncateOperator: '(' "TRUNCATE" Lisp_Expression ')'

Terminals = 8 (instances=4,401)
Tokens = 70 (instances=14,190)

(*) Statistics are shown in the same order as the Tokens.
Percentages are rounded; 'all' and 'none' mean 100% and 0% before rounding.
For lists, it shows the average number of occurrences, excluding empty lists.