Main program: AWK_Program
AWK syntax:
Count | Terminals: | |
5 | AWK_Comment: # comment | |
499 | AWK_EndOfLine: End of line | |
AWK_Function_Definition: An identifier | ||
408 | AWK_Identifier_Reference: An identifier | |
296 | AWK_Literal: quotes:'" escape:\ doubled:no multiline:no | |
128 | AWK_Number: exponent_chars:none suffix_chars:none trailing_period:yes ignore_char:none | |
AWK_Parameter_Definition: An identifier | ||
119 | AWK_Pattern: quotes:/ escape:\ doubled:no multiline:no | |
Count | Statistics(*) | Tokens: |
91 | all all 3.63(98%) all all | AWK_Action: '{' [AWK_EndOfLine] [AWK_StatementOrComment]* '}' [AWK_EndOfLine] |
323 | (all | none | none) | | AWK_StatementOrComment: (AWK_Statements | AWK_Comment | AWK_Action) |
201 | all 1.65(40%) | AWK_ArgumentList: AWK_Expression [AWK_MoreArguments]* |
132 | 94% none all | | AWK_MoreArguments: [','] [AWK_EndOfLine] AWK_Expression |
84 | 1.00(93%) all | AWK_Command: [AWK_Condition]* AWK_Action |
78 | (41% | 59%) | AWK_Condition: (("BEGIN"|"END") | AWK_Expression) |
884 | (14% | none | 2% | 13% | none | 1% | none | 0% | 4% | 24% | 22% | none | 2% | none | 4% | none | 0% | none | none | 1% | 5% | 2% | none | none | 1% | 5% | none | none) | AWK_Expression: (AWK_Number | AWK_GetLine | AWK_CallFunction | AWK_PatternExpression | AWK_PreIncrementExpression | AWK_PostIncrementExpression | AWK_NegativeExpression | AWK_LogicalNotExpression | AWK_ConcatenationExpression | AWK_VariableExpression | AWK_String | AWK_IntFunction | AWK_LengthFunction | AWK_SprintfFunction | AWK_SubstrFunction | AWK_BuiltinFunction | AWK_ParenthesizedExpression | AWK_DollarParensExpression | AWK_SubscriptExpression | AWK_MultiplicativeExpression | AWK_AdditiveExpression | AWK_RelationalExpression | AWK_RegularExpression | AWK_InExpression | AWK_LogicalAndExpression | AWK_LogicalOrExpression | AWK_TrueFalseExpression | AWK_AssignmentExpression) |
AWK_Function: "function" AWK_Function_Definition AWK_Function_ParameterDefs [AWK_Comment]* AWK_FunctionBody | ||
| AWK_FunctionBody: '{' [AWK_EndOfLine] [AWK_StatementOrComment]* '}' [AWK_EndOfLine] | ||
| AWK_Function_ParameterDefs: '(' [AWK_Comment] [AWK_Parameter_Definition]* ')' | ||
25 | 3.36 | AWK_Program: AWK_Element* |
| AWK_CommentLine: AWK_Comment AWK_EndOfLine | ||
84 | (all | none | none) | | AWK_Element: (AWK_Command | AWK_CommentLine | AWK_Function) |
328 | 1.01 93% none 97% | AWK_Statements: AWK_Statement* [';'] [AWK_Comment]* [AWK_EndOfLine] |
330 | (none | 2% | 29% | none | none | 0% | none | none | 3% | 5% | 47% | none | 0% | 11% | none | none | 3%) | | AWK_Statement: (';' | AWK_Comment | AWK_Assignment | AWK_BreakStatement | AWK_ContinueStatement | AWK_ExitStatement | AWK_ForStatement | AWK_ForEachStatement | AWK_IfStatement | AWK_NextStatement | AWK_PrintStatement | AWK_ReturnStatement | AWK_SplitStatement | AWK_SubStatement | AWK_SwitchStatement | AWK_WhileStatement | AWK_ExpressionStatement) |
394 | all 1.00(9%) | AWK_Variable: AWK_Identifier_Reference [AWK_VarSubscript]* |
37 | all all all | | AWK_VarSubscript: '[' AWK_Expression ']' |
40 | all all all | AWK_AdditiveExpression: AWK_Expression ("+"|"-") AWK_Expression |
AWK_AssignmentExpression: AWK_Expression ("="|"+="|"-="|"*="|"/=") AWK_Expression | ||
14 | all all all all | AWK_CallFunction: AWK_Identifier_Reference '(' [AWK_ArgumentList] ')' |
35 | all all 3.45(89%) | AWK_ConcatenationExpression: AWK_ConcatPiece AWK_ConcatPiece [AWK_ConcatPiece]* |
177 | (59% | 41%) | | AWK_ConcatPiece: (AWK_String | AWK_VariableExpression) |
AWK_DollarParensExpression: '$' '(' AWK_Expression ')' | ||
AWK_GetLine: "GETLINE" AWK_Variable '<' AWK_Variable | ||
AWK_InExpression: AWK_Expression "in" AWK_Expression | ||
5 | all all none all | AWK_LogicalAndExpression: AWK_Expression "&&" [AWK_EndOfLine] AWK_Expression |
4 | all all | AWK_LogicalNotExpression: '!' AWK_Expression |
43 | all all none all | AWK_LogicalOrExpression: AWK_Expression "||" [AWK_EndOfLine] AWK_Expression |
10 | all all all | AWK_MultiplicativeExpression: AWK_Expression ("*"|"/"|"%") AWK_Expression |
AWK_NegativeExpression: ("-") AWK_Expression | ||
1 | all all all | AWK_ParenthesizedExpression: '(' AWK_Expression ')' |
119 | all | AWK_PatternExpression: AWK_Pattern |
9 | all all | AWK_PostIncrementExpression: AWK_Variable ("++"|"--") |
AWK_PreIncrementExpression: ("++"|"--") AWK_Expression | ||
AWK_RegularExpression: AWK_Expression ("~"|"!~") AWK_Expression | ||
17 | all all all | AWK_RelationalExpression: AWK_Expression ("=="|"!="|"<"|">"|"<="|">=") AWK_Expression |
296 | all | AWK_String: AWK_Literal |
AWK_SubscriptExpression: AWK_Expression '[' AWK_Expression ']' | ||
AWK_TrueFalseExpression: AWK_Expression '?' AWK_Expression ':' AWK_Expression | ||
288 | all | AWK_VariableExpression: AWK_Variable |
AWK_BuiltinFunction: ("index"|"match"|"strftime") '(' [AWK_ArgumentList] ')' | ||
AWK_IntFunction: "int" '(' AWK_Expression ')' | ||
19 | all all all all | AWK_LengthFunction: "length" '(' AWK_Expression ')' |
AWK_SprintfFunction: "sprintf" '(' AWK_ArgumentList ')' | ||
33 | all all all all all 94% 94% all | AWK_SubstrFunction: "substr" '(' AWK_Expression ',' AWK_Expression [','] [AWK_Expression] ')' |
97 | all all all | AWK_Assignment: AWK_Variable ("="|"+="|"-="|"*="|"/=") AWK_Expression |
AWK_BreakStatement: "break" | ||
AWK_ContinueStatement: "continue" | ||
1 | all | AWK_ExitStatement: "exit" |
9 | all | AWK_ExpressionStatement: AWK_Expression |
AWK_ForEachStatement: "for" '(' AWK_Variable "in" AWK_Expression ')' [AWK_EndOfLine] AWK_ForEachBlock | ||
| AWK_ForEachBlock: (AWK_Statement | AWK_Action) | ||
AWK_ForStatement: "for" '(' AWK_Variable '=' AWK_Expression ';' AWK_Expression ';' AWK_Expression ')' [AWK_EndOfLine] AWK_ForBlock | ||
| AWK_ForBlock: (AWK_Statement | AWK_Action) | ||
11 | all all all all none all 9% | AWK_IfStatement: "if" '(' AWK_Expression ')' [AWK_EndOfLine] AWK_IfBlock [AWK_IfElse] |
12 | (42% | 58%) | | AWK_IfBlock: (AWK_Statements | AWK_Action) |
1 | all none all | | AWK_IfElse: "else" [AWK_EndOfLine] AWK_IfBlock |
15 | all | AWK_NextStatement: "next" |
156 | all all | AWK_PrintStatement: ("print"|"printf") AWK_PrintParameters |
156 | (21% | 79%) | | AWK_PrintParameters: (AWK_Print_WithParens | AWK_Print_NoParens) |
124 | 96% | | AWK_Print_NoParens: [AWK_ArgumentList] |
32 | all all all | | AWK_Print_WithParens: '(' [AWK_ArgumentList] ')' |
AWK_ReturnStatement: "RETURN" [AWK_Expression] | ||
1 | all all all all | AWK_SplitStatement: ("split") '(' AWK_ArgumentList ')' |
35 | all all all all | AWK_SubStatement: ("gsub"|"sub") '(' AWK_ArgumentList ')' |
AWK_SwitchStatement: "switch" '(' AWK_Expression ')' [AWK_Comment] '{' [AWK_EndOfLine] [AWK_SwitchClause]* '}' [AWK_EndOfLine] | ||
| AWK_CaseClause: "case" AWK_Expression ':' [AWK_EndOfLine] [AWK_StatementOrComment]* | ||
| AWK_DefaultClause: "default" ':' [AWK_StatementOrComment]* | ||
| AWK_SwitchClause: (AWK_Comment | AWK_CaseClause | AWK_DefaultClause) | ||
AWK_WhileStatement: "while" '(' AWK_Expression ')' AWK_WhileBlock | ||
| AWK_WhileBlock: (AWK_Statement | AWK_Action) |
Terminals = 8 (instances=1,455)
Tokens = 71 (instances=4,751)
(*) 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.