Skip to content
Snippets Groups Projects
Commit 32ce815f authored by ael-mess's avatar ael-mess
Browse files

adding comments

parent 05ef0091
Branches
No related tags found
No related merge requests found
......@@ -2,40 +2,6 @@ lexer grammar traceLexer;
@lexer::header {package com.parser;}
PTASK_TRACEPOINT : 'ptask_provider:ptask_tracepoint';
SCHED_SWITCH : 'sched_switch';
EXIT_CLONE : 'syscall_exit_clone';
ENTRY_CLONE : 'syscall_entry_clone';
FIELD1 : 'cpu_id';
FIELD2 : 'pid';
FIELD3 : 'tid';
FIELD4 : 'ret';
FIELD5 : 'clone_flags';
FIELD6 : 'newsp';
FIELD7 : 'parent_tid';
FIELD8 : 'child_tid';
FIELD9 : 'prev_comm';
FIELD10 : 'prev_tid';
FIELD11 : 'prev_prio';
FIELD12 : 'prev_state';
FIELD13 : 'next_comm';
FIELD14 : 'next_tid';
FIELD15 : 'next_prio';
FIELD16 : 'ptask_flag';
FIELD18 : 'ptask_state';
FIELD19 : 'ptask_pid';
FIELD20 : 'ptask_tid';
FIELD21 : 'ptask_index';
FIELD22 : 'ptask_time';
FIELD23 : 'ptask_priority';
FIELD24 : 'ptask_period';
FIELD25 : 'ptask_deadline';
PTASK_STATE : '"b_wait_period"'|'"e_wait_period"'|'"b_wait_activation"'|'"e_wait_activation"';
PTASK_FLAG : '"DEFERRED"'|'"NOW"';
COMM : '"ball"';
EQ : '=';
PLUS : '+';
DOT : '.';
......@@ -47,11 +13,46 @@ LPAR : '(';
RPAR : ')';
LCBRA : '{';
RCBRA : '}';
QUOT : '"';
PTASK_TRACEPOINT : 'ptask_provider:ptask_tracepoint';
SCHED_SWITCH : 'sched_switch';
EXIT_CLONE : 'syscall_exit_clone';
ENTRY_CLONE : 'syscall_entry_clone';
CPU_ID : 'cpu_id';
PID : 'pid';
TID : 'tid';
RET : 'ret';
CLONE_FLAG : 'clone_flags';
NEWSP : 'newsp';
PARENT_TID : 'parent_tid';
CHILD_TID : 'child_tid';
PREV_COMM : 'prev_comm';
PREV_TID : 'prev_tid';
PREV_PRIO : 'prev_prio';
PREV_STATE : 'prev_state';
NEXT_COMM : 'next_comm';
NEXT_TID : 'next_tid';
NEXT_PRIO : 'next_prio';
PTASK_FLAG_F : 'ptask_flag';
PTASK_STATE_F : 'ptask_state';
PTASK_PID : 'ptask_pid';
PTASK_TID : 'ptask_tid';
PTASK_INDEX : 'ptask_index';
PTASK_TIME : 'ptask_time';
PTASK_PRIORITY : 'ptask_priority';
PTASK_PERIOD : 'ptask_period';
PTASK_DEADLINE : 'ptask_deadline';
PTASK_STATE : QUOT('b_wait_period'|'e_wait_period'|'b_wait_activation'|'e_wait_activation'|'creation')QUOT;
PTASK_FLAG : QUOT('DEFERRED'|'NOW')QUOT;
DELTA : [0-9]'.'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9];
DELTA : ([0-9]'.'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9])|'?.?????????';
INT : [0-9]+;
SINT : '-'[0-9]+;
HEX : '0x'[0-9A-F]+;
ID : QUOT[A-Za-z0-9/:. _-]+QUOT;
HOSTNAME : [A-Za-z0-9-]+;
WS : [ \t\r\n]+ -> skip;
......@@ -9,53 +9,29 @@ options {tokenVocab=traceLexer;}
start returns [ List<trace> traces ] : { $traces = new ArrayList<>(); } (trace { $traces.add($trace.tr); })* EOF;
trace returns [ trace tr ] :
timestamp HOSTNAME ENTRY_CLONE COL LCBRA header RCBRA COM LCBRA context RCBRA COM LCBRA fields_entry_clone RCBRA { $tr = new clone_entry($timestamp.t,$header.cpu_id,$context.cntx.get(0),$context.cntx.get(1),$fields_entry_clone.field_enc.get(0),$fields_entry_clone.field_enc.get(1),$fields_entry_clone.field_enc.get(2),$fields_entry_clone.field_enc.get(3)); }
| timestamp HOSTNAME EXIT_CLONE COL LCBRA header RCBRA COM LCBRA context RCBRA COM LCBRA fields_exit_clone RCBRA { $tr = new clone_exit($timestamp.t,$header.cpu_id,$context.cntx.get(0),$context.cntx.get(1),$fields_exit_clone.field_exc); }
| timestamp HOSTNAME SCHED_SWITCH COL LCBRA header RCBRA COM LCBRA context RCBRA COM LCBRA fields_sched_switch RCBRA { $tr = new sched_switch($timestamp.t,$header.cpu_id,$context.cntx.get(0),$context.cntx.get(1),$fields_sched_switch.field_ss.get(0),$fields_sched_switch.field_ss.get(4),$fields_sched_switch.field_ss.get(1),$fields_sched_switch.field_ss.get(5),$fields_sched_switch.field_ss.get(2),$fields_sched_switch.field_ss.get(6),$fields_sched_switch.field_ss.get(3)); }
| timestamp HOSTNAME PTASK_TRACEPOINT COL LCBRA header RCBRA COM LCBRA fields_ptask_tracepoint RCBRA { $tr = new ptask_tracepoint($timestamp.t,$header.cpu_id,$fields_ptask_tracepoint.field_pt.get(2),$fields_ptask_tracepoint.field_pt.get(3),$fields_ptask_tracepoint.field_pt.get(0),$fields_ptask_tracepoint.field_pt.get(1),$fields_ptask_tracepoint.field_pt.get(4),$fields_ptask_tracepoint.field_pt.get(5),$fields_ptask_tracepoint.field_pt.get(6),$fields_ptask_tracepoint.field_pt.get(7),$fields_ptask_tracepoint.field_pt.get(8)); }
timestamp HOSTNAME ENTRY_CLONE COL LCBRA header RCBRA COM LCBRA context RCBRA COM LCBRA CLONE_FLAG EQ clone_flag=HEX COM NEWSP EQ newsp=HEX COM PARENT_TID EQ ptid=HEX COM CHILD_TID EQ ctid=HEX RCBRA
{ $tr = new clone_entry($timestamp.t,$header.cpu_id,$context.cntx.get(0),$context.cntx.get(1),$clone_flag.text,$newsp.text,$ptid.text,$ctid.text); }
| timestamp HOSTNAME EXIT_CLONE COL LCBRA header RCBRA COM LCBRA context RCBRA COM LCBRA RET EQ ret=INT RCBRA
{ $tr = new clone_exit($timestamp.t,$header.cpu_id,$context.cntx.get(0),$context.cntx.get(1),$ret.int); }
| timestamp HOSTNAME SCHED_SWITCH COL LCBRA header RCBRA COM LCBRA context RCBRA COM LCBRA PREV_COMM EQ prev_comm=comm COM PREV_TID EQ prev_tid=INT COM PREV_PRIO EQ prev_prio=sint COM PREV_STATE EQ prev_state=INT COM NEXT_COMM EQ next_comm=comm COM NEXT_TID EQ next_tid=INT COM NEXT_PRIO EQ next_prio=sint RCBRA
{ $tr = new sched_switch($timestamp.t,$header.cpu_id,$context.cntx.get(0),$context.cntx.get(1),$prev_comm.text,$next_comm.text,$prev_tid.int,$next_tid.int,$prev_prio.text,$next_prio.text,$prev_state.int); }
| timestamp HOSTNAME PTASK_TRACEPOINT COL LCBRA header RCBRA COM LCBRA PTASK_PID EQ pid=INT COM PTASK_TID EQ tid=INT COM PTASK_INDEX EQ ptask_index=INT COM PTASK_FLAG_F EQ ptask_flag=PTASK_FLAG COM PTASK_STATE_F EQ ptask_state=PTASK_STATE COM PTASK_TIME EQ times=INT COM PTASK_PRIORITY EQ ptask_prio=INT COM PTASK_PERIOD EQ ptask_peri=INT COM PTASK_DEADLINE EQ ptask_dead=INT RCBRA
{ $tr = new ptask_tracepoint($timestamp.t,$header.cpu_id,$pid.int,$tid.int,$ptask_flag.text,$ptask_state.text,$ptask_index.int,$times.text,$ptask_prio.int,$ptask_peri.int,$ptask_dead.int); }
;
timestamp returns [ time_trace t ] :
(LBRA h=INT COL m=INT COL s=INT DOT os=INT RBRA LPAR PLUS delta=DELTA RPAR) { $t = new time_trace($h.int,$m.int,$s.int,$os.text,$delta.text); } ;
LBRA h=INT COL m=INT COL s=INT DOT os=INT RBRA LPAR PLUS delta=DELTA RPAR
{ $t = new time_trace($h.int,$m.int,$s.int,$os.text,$delta.text); } ;
header returns [ Integer cpu_id ] :
FIELD1 EQ cpuid=INT { $cpu_id = $cpuid.int; } ;
CPU_ID EQ cpuid=INT
{ $cpu_id = $cpuid.int; } ;
context returns [ List<Integer> cntx ] :
FIELD2 EQ pid=INT COM FIELD3 EQ tid=INT
PID EQ pid=INT COM TID EQ tid=INT
{ $cntx = new ArrayList<Integer>(2);
$cntx.add(0,$pid.int);
$cntx.add(1,$tid.int); } ;
fields_exit_clone returns [ Integer field_exc ] :
FIELD4 EQ ret=INT {$field_exc = $ret.int; } ;
fields_entry_clone returns [ List<String> field_enc ] :
FIELD5 EQ clone_flag=HEX COM FIELD6 EQ newsp=HEX COM FIELD7 EQ ptid=HEX COM FIELD8 EQ ctid=HEX
{ $field_enc = new ArrayList<String>(4);
$field_enc.add(0,$clone_flag.text);
$field_enc.add(1,$newsp.text);
$field_enc.add(2,$ptid.text);
$field_enc.add(3,$ctid.text); } ;
fields_sched_switch returns [ List<String> field_ss ] :
FIELD9 EQ comm=COMM COM FIELD10 EQ prev_tid=INT COM FIELD11 EQ prev_prio=sint COM FIELD12 EQ prev_state=INT COM FIELD13 EQ comm=COMM COM FIELD14 EQ next_tid=INT COM FIELD15 EQ next_prio=sint
{ $field_ss = new ArrayList<String>(7);
$field_ss.add(0,$comm.text);
$field_ss.add(1,$prev_tid.text);
$field_ss.add(2,$prev_prio.text);
$field_ss.add(3,$prev_state.text);
$field_ss.add(4,$comm.text);
$field_ss.add(5,$next_tid.text);
$field_ss.add(6,$next_prio.text); } ;
fields_ptask_tracepoint returns [ List<String> field_pt ] :
FIELD16 EQ ptask_flag=PTASK_FLAG COM FIELD18 EQ ptask_state=PTASK_STATE COM FIELD19 EQ pid=INT COM FIELD20 EQ tid=INT COM FIELD21 EQ ptask_index=INT COM FIELD22 EQ times=INT COM FIELD23 EQ ptask_prio=INT COM FIELD24 EQ ptask_peri=INT COM FIELD25 EQ ptask_dead=INT
{ $field_pt = new ArrayList<String>(9);
$field_pt.add(0,$ptask_flag.text);
$field_pt.add(1,$ptask_state.text);
$field_pt.add(2,$pid.text);
$field_pt.add(3,$tid.text);
$field_pt.add(4,$ptask_index.text);
$field_pt.add(5,$times.text);
$field_pt.add(6,$ptask_prio.text);
$field_pt.add(7,$ptask_peri.text);
$field_pt.add(8,$ptask_dead.text); } ;
comm : ID;
sint : INT|SINT;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment