yara-x-parser 1.7.0

A parsing library for YARA rules.
Documentation
Begin { kind: SOURCE_FILE, span: Span(0..279) }
Begin { kind: RULE_DECL, span: Span(0..46) }
Token { kind: RULE_KW, span: Span(0..4) }
Token { kind: WHITESPACE, span: Span(4..5) }
Token { kind: IDENT, span: Span(5..11) }
Token { kind: WHITESPACE, span: Span(11..12) }
Token { kind: L_BRACE, span: Span(12..13) }
Token { kind: NEWLINE, span: Span(13..14) }
Token { kind: WHITESPACE, span: Span(14..17) }
Begin { kind: CONDITION_BLK, span: Span(17..44) }
Token { kind: CONDITION_KW, span: Span(17..26) }
Token { kind: COLON, span: Span(26..27) }
Token { kind: NEWLINE, span: Span(27..28) }
Token { kind: WHITESPACE, span: Span(28..33) }
Begin { kind: BOOLEAN_EXPR, span: Span(33..44) }
Begin { kind: BOOLEAN_TERM, span: Span(33..44) }
Begin { kind: EXPR, span: Span(33..39) }
Begin { kind: TERM, span: Span(33..34) }
Begin { kind: PRIMARY_EXPR, span: Span(33..34) }
Token { kind: INTEGER_LIT, span: Span(33..34) }
End { kind: PRIMARY_EXPR, span: Span(33..34) }
End { kind: TERM, span: Span(33..34) }
Token { kind: WHITESPACE, span: Span(34..35) }
Token { kind: SHL, span: Span(35..37) }
Token { kind: WHITESPACE, span: Span(37..38) }
Begin { kind: TERM, span: Span(38..39) }
Begin { kind: PRIMARY_EXPR, span: Span(38..39) }
Token { kind: INTEGER_LIT, span: Span(38..39) }
End { kind: PRIMARY_EXPR, span: Span(38..39) }
End { kind: TERM, span: Span(38..39) }
End { kind: EXPR, span: Span(33..39) }
Token { kind: WHITESPACE, span: Span(39..40) }
Token { kind: EQ, span: Span(40..42) }
Token { kind: WHITESPACE, span: Span(42..43) }
Begin { kind: EXPR, span: Span(43..44) }
Begin { kind: TERM, span: Span(43..44) }
Begin { kind: PRIMARY_EXPR, span: Span(43..44) }
Token { kind: INTEGER_LIT, span: Span(43..44) }
End { kind: PRIMARY_EXPR, span: Span(43..44) }
End { kind: TERM, span: Span(43..44) }
End { kind: EXPR, span: Span(43..44) }
End { kind: BOOLEAN_TERM, span: Span(33..44) }
End { kind: BOOLEAN_EXPR, span: Span(33..44) }
End { kind: CONDITION_BLK, span: Span(17..44) }
Token { kind: NEWLINE, span: Span(44..45) }
Token { kind: R_BRACE, span: Span(45..46) }
End { kind: RULE_DECL, span: Span(0..46) }
Token { kind: NEWLINE, span: Span(46..47) }
Token { kind: NEWLINE, span: Span(47..48) }
Begin { kind: RULE_DECL, span: Span(48..94) }
Token { kind: RULE_KW, span: Span(48..52) }
Token { kind: WHITESPACE, span: Span(52..53) }
Token { kind: IDENT, span: Span(53..59) }
Token { kind: WHITESPACE, span: Span(59..60) }
Token { kind: L_BRACE, span: Span(60..61) }
Token { kind: NEWLINE, span: Span(61..62) }
Token { kind: WHITESPACE, span: Span(62..65) }
Begin { kind: CONDITION_BLK, span: Span(65..92) }
Token { kind: CONDITION_KW, span: Span(65..74) }
Token { kind: COLON, span: Span(74..75) }
Token { kind: NEWLINE, span: Span(75..76) }
Token { kind: WHITESPACE, span: Span(76..81) }
Begin { kind: BOOLEAN_EXPR, span: Span(81..92) }
Begin { kind: BOOLEAN_TERM, span: Span(81..92) }
Begin { kind: EXPR, span: Span(81..87) }
Begin { kind: TERM, span: Span(81..82) }
Begin { kind: PRIMARY_EXPR, span: Span(81..82) }
Token { kind: INTEGER_LIT, span: Span(81..82) }
End { kind: PRIMARY_EXPR, span: Span(81..82) }
End { kind: TERM, span: Span(81..82) }
Token { kind: WHITESPACE, span: Span(82..83) }
Token { kind: SHR, span: Span(83..85) }
Token { kind: WHITESPACE, span: Span(85..86) }
Begin { kind: TERM, span: Span(86..87) }
Begin { kind: PRIMARY_EXPR, span: Span(86..87) }
Token { kind: INTEGER_LIT, span: Span(86..87) }
End { kind: PRIMARY_EXPR, span: Span(86..87) }
End { kind: TERM, span: Span(86..87) }
End { kind: EXPR, span: Span(81..87) }
Token { kind: WHITESPACE, span: Span(87..88) }
Token { kind: EQ, span: Span(88..90) }
Token { kind: WHITESPACE, span: Span(90..91) }
Begin { kind: EXPR, span: Span(91..92) }
Begin { kind: TERM, span: Span(91..92) }
Begin { kind: PRIMARY_EXPR, span: Span(91..92) }
Token { kind: INTEGER_LIT, span: Span(91..92) }
End { kind: PRIMARY_EXPR, span: Span(91..92) }
End { kind: TERM, span: Span(91..92) }
End { kind: EXPR, span: Span(91..92) }
End { kind: BOOLEAN_TERM, span: Span(81..92) }
End { kind: BOOLEAN_EXPR, span: Span(81..92) }
End { kind: CONDITION_BLK, span: Span(65..92) }
Token { kind: NEWLINE, span: Span(92..93) }
Token { kind: R_BRACE, span: Span(93..94) }
End { kind: RULE_DECL, span: Span(48..94) }
Token { kind: NEWLINE, span: Span(94..95) }
Token { kind: NEWLINE, span: Span(95..96) }
Begin { kind: RULE_DECL, span: Span(96..141) }
Token { kind: RULE_KW, span: Span(96..100) }
Token { kind: WHITESPACE, span: Span(100..101) }
Token { kind: IDENT, span: Span(101..107) }
Token { kind: WHITESPACE, span: Span(107..108) }
Token { kind: L_BRACE, span: Span(108..109) }
Token { kind: NEWLINE, span: Span(109..110) }
Token { kind: WHITESPACE, span: Span(110..113) }
Begin { kind: CONDITION_BLK, span: Span(113..139) }
Token { kind: CONDITION_KW, span: Span(113..122) }
Token { kind: COLON, span: Span(122..123) }
Token { kind: NEWLINE, span: Span(123..124) }
Token { kind: WHITESPACE, span: Span(124..129) }
Begin { kind: BOOLEAN_EXPR, span: Span(129..139) }
Begin { kind: BOOLEAN_TERM, span: Span(129..139) }
Begin { kind: EXPR, span: Span(129..134) }
Begin { kind: TERM, span: Span(129..130) }
Begin { kind: PRIMARY_EXPR, span: Span(129..130) }
Token { kind: INTEGER_LIT, span: Span(129..130) }
End { kind: PRIMARY_EXPR, span: Span(129..130) }
End { kind: TERM, span: Span(129..130) }
Token { kind: WHITESPACE, span: Span(130..131) }
Token { kind: BITWISE_OR, span: Span(131..132) }
Token { kind: WHITESPACE, span: Span(132..133) }
Begin { kind: TERM, span: Span(133..134) }
Begin { kind: PRIMARY_EXPR, span: Span(133..134) }
Token { kind: INTEGER_LIT, span: Span(133..134) }
End { kind: PRIMARY_EXPR, span: Span(133..134) }
End { kind: TERM, span: Span(133..134) }
End { kind: EXPR, span: Span(129..134) }
Token { kind: WHITESPACE, span: Span(134..135) }
Token { kind: EQ, span: Span(135..137) }
Token { kind: WHITESPACE, span: Span(137..138) }
Begin { kind: EXPR, span: Span(138..139) }
Begin { kind: TERM, span: Span(138..139) }
Begin { kind: PRIMARY_EXPR, span: Span(138..139) }
Token { kind: INTEGER_LIT, span: Span(138..139) }
End { kind: PRIMARY_EXPR, span: Span(138..139) }
End { kind: TERM, span: Span(138..139) }
End { kind: EXPR, span: Span(138..139) }
End { kind: BOOLEAN_TERM, span: Span(129..139) }
End { kind: BOOLEAN_EXPR, span: Span(129..139) }
End { kind: CONDITION_BLK, span: Span(113..139) }
Token { kind: NEWLINE, span: Span(139..140) }
Token { kind: R_BRACE, span: Span(140..141) }
End { kind: RULE_DECL, span: Span(96..141) }
Token { kind: NEWLINE, span: Span(141..142) }
Token { kind: NEWLINE, span: Span(142..143) }
Begin { kind: RULE_DECL, span: Span(143..188) }
Token { kind: RULE_KW, span: Span(143..147) }
Token { kind: WHITESPACE, span: Span(147..148) }
Token { kind: IDENT, span: Span(148..154) }
Token { kind: WHITESPACE, span: Span(154..155) }
Token { kind: L_BRACE, span: Span(155..156) }
Token { kind: NEWLINE, span: Span(156..157) }
Token { kind: WHITESPACE, span: Span(157..160) }
Begin { kind: CONDITION_BLK, span: Span(160..186) }
Token { kind: CONDITION_KW, span: Span(160..169) }
Token { kind: COLON, span: Span(169..170) }
Token { kind: NEWLINE, span: Span(170..171) }
Token { kind: WHITESPACE, span: Span(171..176) }
Begin { kind: BOOLEAN_EXPR, span: Span(176..186) }
Begin { kind: BOOLEAN_TERM, span: Span(176..186) }
Begin { kind: EXPR, span: Span(176..181) }
Begin { kind: TERM, span: Span(176..177) }
Begin { kind: PRIMARY_EXPR, span: Span(176..177) }
Token { kind: INTEGER_LIT, span: Span(176..177) }
End { kind: PRIMARY_EXPR, span: Span(176..177) }
End { kind: TERM, span: Span(176..177) }
Token { kind: WHITESPACE, span: Span(177..178) }
Token { kind: BITWISE_AND, span: Span(178..179) }
Token { kind: WHITESPACE, span: Span(179..180) }
Begin { kind: TERM, span: Span(180..181) }
Begin { kind: PRIMARY_EXPR, span: Span(180..181) }
Token { kind: INTEGER_LIT, span: Span(180..181) }
End { kind: PRIMARY_EXPR, span: Span(180..181) }
End { kind: TERM, span: Span(180..181) }
End { kind: EXPR, span: Span(176..181) }
Token { kind: WHITESPACE, span: Span(181..182) }
Token { kind: EQ, span: Span(182..184) }
Token { kind: WHITESPACE, span: Span(184..185) }
Begin { kind: EXPR, span: Span(185..186) }
Begin { kind: TERM, span: Span(185..186) }
Begin { kind: PRIMARY_EXPR, span: Span(185..186) }
Token { kind: INTEGER_LIT, span: Span(185..186) }
End { kind: PRIMARY_EXPR, span: Span(185..186) }
End { kind: TERM, span: Span(185..186) }
End { kind: EXPR, span: Span(185..186) }
End { kind: BOOLEAN_TERM, span: Span(176..186) }
End { kind: BOOLEAN_EXPR, span: Span(176..186) }
End { kind: CONDITION_BLK, span: Span(160..186) }
Token { kind: NEWLINE, span: Span(186..187) }
Token { kind: R_BRACE, span: Span(187..188) }
End { kind: RULE_DECL, span: Span(143..188) }
Token { kind: NEWLINE, span: Span(188..189) }
Token { kind: NEWLINE, span: Span(189..190) }
Begin { kind: RULE_DECL, span: Span(190..235) }
Token { kind: RULE_KW, span: Span(190..194) }
Token { kind: WHITESPACE, span: Span(194..195) }
Token { kind: IDENT, span: Span(195..201) }
Token { kind: WHITESPACE, span: Span(201..202) }
Token { kind: L_BRACE, span: Span(202..203) }
Token { kind: NEWLINE, span: Span(203..204) }
Token { kind: WHITESPACE, span: Span(204..207) }
Begin { kind: CONDITION_BLK, span: Span(207..233) }
Token { kind: CONDITION_KW, span: Span(207..216) }
Token { kind: COLON, span: Span(216..217) }
Token { kind: NEWLINE, span: Span(217..218) }
Token { kind: WHITESPACE, span: Span(218..223) }
Begin { kind: BOOLEAN_EXPR, span: Span(223..233) }
Begin { kind: BOOLEAN_TERM, span: Span(223..233) }
Begin { kind: EXPR, span: Span(223..228) }
Begin { kind: TERM, span: Span(223..224) }
Begin { kind: PRIMARY_EXPR, span: Span(223..224) }
Token { kind: INTEGER_LIT, span: Span(223..224) }
End { kind: PRIMARY_EXPR, span: Span(223..224) }
End { kind: TERM, span: Span(223..224) }
Token { kind: WHITESPACE, span: Span(224..225) }
Token { kind: BITWISE_XOR, span: Span(225..226) }
Token { kind: WHITESPACE, span: Span(226..227) }
Begin { kind: TERM, span: Span(227..228) }
Begin { kind: PRIMARY_EXPR, span: Span(227..228) }
Token { kind: INTEGER_LIT, span: Span(227..228) }
End { kind: PRIMARY_EXPR, span: Span(227..228) }
End { kind: TERM, span: Span(227..228) }
End { kind: EXPR, span: Span(223..228) }
Token { kind: WHITESPACE, span: Span(228..229) }
Token { kind: EQ, span: Span(229..231) }
Token { kind: WHITESPACE, span: Span(231..232) }
Begin { kind: EXPR, span: Span(232..233) }
Begin { kind: TERM, span: Span(232..233) }
Begin { kind: PRIMARY_EXPR, span: Span(232..233) }
Token { kind: INTEGER_LIT, span: Span(232..233) }
End { kind: PRIMARY_EXPR, span: Span(232..233) }
End { kind: TERM, span: Span(232..233) }
End { kind: EXPR, span: Span(232..233) }
End { kind: BOOLEAN_TERM, span: Span(223..233) }
End { kind: BOOLEAN_EXPR, span: Span(223..233) }
End { kind: CONDITION_BLK, span: Span(207..233) }
Token { kind: NEWLINE, span: Span(233..234) }
Token { kind: R_BRACE, span: Span(234..235) }
End { kind: RULE_DECL, span: Span(190..235) }
Token { kind: NEWLINE, span: Span(235..236) }
Token { kind: NEWLINE, span: Span(236..237) }
Begin { kind: RULE_DECL, span: Span(237..279) }
Token { kind: RULE_KW, span: Span(237..241) }
Token { kind: WHITESPACE, span: Span(241..242) }
Token { kind: IDENT, span: Span(242..248) }
Token { kind: WHITESPACE, span: Span(248..249) }
Token { kind: L_BRACE, span: Span(249..250) }
Token { kind: NEWLINE, span: Span(250..251) }
Token { kind: WHITESPACE, span: Span(251..254) }
Begin { kind: CONDITION_BLK, span: Span(254..277) }
Token { kind: CONDITION_KW, span: Span(254..263) }
Token { kind: COLON, span: Span(263..264) }
Token { kind: NEWLINE, span: Span(264..265) }
Token { kind: WHITESPACE, span: Span(265..270) }
Begin { kind: BOOLEAN_EXPR, span: Span(270..277) }
Begin { kind: BOOLEAN_TERM, span: Span(270..277) }
Begin { kind: EXPR, span: Span(270..272) }
Begin { kind: TERM, span: Span(270..272) }
Begin { kind: PRIMARY_EXPR, span: Span(270..272) }
Token { kind: BITWISE_NOT, span: Span(270..271) }
Begin { kind: TERM, span: Span(271..272) }
Begin { kind: PRIMARY_EXPR, span: Span(271..272) }
Token { kind: INTEGER_LIT, span: Span(271..272) }
End { kind: PRIMARY_EXPR, span: Span(271..272) }
End { kind: TERM, span: Span(271..272) }
End { kind: PRIMARY_EXPR, span: Span(270..272) }
End { kind: TERM, span: Span(270..272) }
End { kind: EXPR, span: Span(270..272) }
Token { kind: WHITESPACE, span: Span(272..273) }
Token { kind: NE, span: Span(273..275) }
Token { kind: WHITESPACE, span: Span(275..276) }
Begin { kind: EXPR, span: Span(276..277) }
Begin { kind: TERM, span: Span(276..277) }
Begin { kind: PRIMARY_EXPR, span: Span(276..277) }
Token { kind: INTEGER_LIT, span: Span(276..277) }
End { kind: PRIMARY_EXPR, span: Span(276..277) }
End { kind: TERM, span: Span(276..277) }
End { kind: EXPR, span: Span(276..277) }
End { kind: BOOLEAN_TERM, span: Span(270..277) }
End { kind: BOOLEAN_EXPR, span: Span(270..277) }
End { kind: CONDITION_BLK, span: Span(254..277) }
Token { kind: NEWLINE, span: Span(277..278) }
Token { kind: R_BRACE, span: Span(278..279) }
End { kind: RULE_DECL, span: Span(237..279) }
End { kind: SOURCE_FILE, span: Span(0..279) }