1*d83cc019SAndroid Build Coastguard WorkerTracepointFmt = 2*d83cc019SAndroid Build Coastguard Worker 'name' ':' Space n:PropertyName EndLine { free(n.string); } 3*d83cc019SAndroid Build Coastguard Worker 'ID:' Space v:Number EndLine { yy->ctx.tp->event_id = v.integer; } 4*d83cc019SAndroid Build Coastguard Worker 'format:' EndLine 5*d83cc019SAndroid Build Coastguard Worker Field+ 6*d83cc019SAndroid Build Coastguard Worker 'print fmt:' [^.]* !. 7*d83cc019SAndroid Build Coastguard Worker 8*d83cc019SAndroid Build Coastguard WorkerField = Space (Property ';' Space)+ EndLine 9*d83cc019SAndroid Build Coastguard Worker { yy->ctx.tp->n_fields++; } 10*d83cc019SAndroid Build Coastguard Worker | EndLine 11*d83cc019SAndroid Build Coastguard Worker 12*d83cc019SAndroid Build Coastguard WorkerProperty = 'offset' ':' v:Number 13*d83cc019SAndroid Build Coastguard Worker { yy->ctx.tp->fields[yy->ctx.tp->n_fields].offset = v.integer; } 14*d83cc019SAndroid Build Coastguard Worker | 'size' ':' v:Number 15*d83cc019SAndroid Build Coastguard Worker { yy->ctx.tp->fields[yy->ctx.tp->n_fields].size = v.integer; } 16*d83cc019SAndroid Build Coastguard Worker | 'signed' ':' v:Number 17*d83cc019SAndroid Build Coastguard Worker { yy->ctx.tp->fields[yy->ctx.tp->n_fields].is_signed = v.integer != 0; } 18*d83cc019SAndroid Build Coastguard Worker | 'field' ':' v:PropertyValue 19*d83cc019SAndroid Build Coastguard Worker { snprintf(yy->ctx.tp->fields[yy->ctx.tp->n_fields].name, 20*d83cc019SAndroid Build Coastguard Worker sizeof(yy->ctx.tp->fields[yy->ctx.tp->n_fields].name), 21*d83cc019SAndroid Build Coastguard Worker "%s", strrchr(v.string, ' ') + 1); 22*d83cc019SAndroid Build Coastguard Worker free(v.string); } 23*d83cc019SAndroid Build Coastguard Worker | n:PropertyName ':' v:PropertyValue 24*d83cc019SAndroid Build Coastguard Worker { free(n.string); free(v.string); } 25*d83cc019SAndroid Build Coastguard Worker 26*d83cc019SAndroid Build Coastguard WorkerPropertyName = < [A-Za-z0-9_]+ > 27*d83cc019SAndroid Build Coastguard Worker { $$.string = strdup(yytext); } 28*d83cc019SAndroid Build Coastguard WorkerPropertyValue = < [^;]+ > 29*d83cc019SAndroid Build Coastguard Worker { $$.string = strdup(yytext); } 30*d83cc019SAndroid Build Coastguard WorkerNumber = < [0-9]+ > 31*d83cc019SAndroid Build Coastguard Worker { $$.integer = atoi(yytext); } 32*d83cc019SAndroid Build Coastguard Worker 33*d83cc019SAndroid Build Coastguard WorkerEndLine = [\n] 34*d83cc019SAndroid Build Coastguard WorkerSpace = [ \t]* 35