yara-x-parser 1.7.0

A parsing library for YARA rules.
Documentation
Begin { kind: SOURCE_FILE, span: Span(0..273) }
Begin { kind: RULE_DECL, span: Span(0..73) }
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..16) }
Begin { kind: CONDITION_BLK, span: Span(16..71) }
Token { kind: CONDITION_KW, span: Span(16..25) }
Token { kind: COLON, span: Span(25..26) }
Token { kind: NEWLINE, span: Span(26..27) }
Token { kind: WHITESPACE, span: Span(27..31) }
Begin { kind: BOOLEAN_EXPR, span: Span(31..71) }
Begin { kind: BOOLEAN_TERM, span: Span(31..41) }
Begin { kind: EXPR, span: Span(31..36) }
Begin { kind: TERM, span: Span(31..32) }
Begin { kind: PRIMARY_EXPR, span: Span(31..32) }
Token { kind: INTEGER_LIT, span: Span(31..32) }
End { kind: PRIMARY_EXPR, span: Span(31..32) }
End { kind: TERM, span: Span(31..32) }
Token { kind: WHITESPACE, span: Span(32..33) }
Token { kind: BITWISE_OR, span: Span(33..34) }
Token { kind: WHITESPACE, span: Span(34..35) }
Begin { kind: TERM, span: Span(35..36) }
Begin { kind: PRIMARY_EXPR, span: Span(35..36) }
Token { kind: INTEGER_LIT, span: Span(35..36) }
End { kind: PRIMARY_EXPR, span: Span(35..36) }
End { kind: TERM, span: Span(35..36) }
End { kind: EXPR, span: Span(31..36) }
Token { kind: WHITESPACE, span: Span(36..37) }
Token { kind: EQ, span: Span(37..39) }
Token { kind: WHITESPACE, span: Span(39..40) }
Begin { kind: EXPR, span: Span(40..41) }
Begin { kind: TERM, span: Span(40..41) }
Begin { kind: PRIMARY_EXPR, span: Span(40..41) }
Token { kind: INTEGER_LIT, span: Span(40..41) }
End { kind: PRIMARY_EXPR, span: Span(40..41) }
End { kind: TERM, span: Span(40..41) }
End { kind: EXPR, span: Span(40..41) }
End { kind: BOOLEAN_TERM, span: Span(31..41) }
Token { kind: WHITESPACE, span: Span(41..42) }
Token { kind: AND_KW, span: Span(42..45) }
Token { kind: WHITESPACE, span: Span(45..46) }
Begin { kind: BOOLEAN_TERM, span: Span(46..56) }
Begin { kind: EXPR, span: Span(46..51) }
Begin { kind: TERM, span: Span(46..47) }
Begin { kind: PRIMARY_EXPR, span: Span(46..47) }
Token { kind: INTEGER_LIT, span: Span(46..47) }
End { kind: PRIMARY_EXPR, span: Span(46..47) }
End { kind: TERM, span: Span(46..47) }
Token { kind: WHITESPACE, span: Span(47..48) }
Token { kind: BITWISE_AND, span: Span(48..49) }
Token { kind: WHITESPACE, span: Span(49..50) }
Begin { kind: TERM, span: Span(50..51) }
Begin { kind: PRIMARY_EXPR, span: Span(50..51) }
Token { kind: INTEGER_LIT, span: Span(50..51) }
End { kind: PRIMARY_EXPR, span: Span(50..51) }
End { kind: TERM, span: Span(50..51) }
End { kind: EXPR, span: Span(46..51) }
Token { kind: WHITESPACE, span: Span(51..52) }
Token { kind: EQ, span: Span(52..54) }
Token { kind: WHITESPACE, span: Span(54..55) }
Begin { kind: EXPR, span: Span(55..56) }
Begin { kind: TERM, span: Span(55..56) }
Begin { kind: PRIMARY_EXPR, span: Span(55..56) }
Token { kind: INTEGER_LIT, span: Span(55..56) }
End { kind: PRIMARY_EXPR, span: Span(55..56) }
End { kind: TERM, span: Span(55..56) }
End { kind: EXPR, span: Span(55..56) }
End { kind: BOOLEAN_TERM, span: Span(46..56) }
Token { kind: WHITESPACE, span: Span(56..57) }
Token { kind: AND_KW, span: Span(57..60) }
Token { kind: WHITESPACE, span: Span(60..61) }
Begin { kind: BOOLEAN_TERM, span: Span(61..71) }
Begin { kind: EXPR, span: Span(61..66) }
Begin { kind: TERM, span: Span(61..62) }
Begin { kind: PRIMARY_EXPR, span: Span(61..62) }
Token { kind: INTEGER_LIT, span: Span(61..62) }
End { kind: PRIMARY_EXPR, span: Span(61..62) }
End { kind: TERM, span: Span(61..62) }
Token { kind: WHITESPACE, span: Span(62..63) }
Token { kind: BITWISE_XOR, span: Span(63..64) }
Token { kind: WHITESPACE, span: Span(64..65) }
Begin { kind: TERM, span: Span(65..66) }
Begin { kind: PRIMARY_EXPR, span: Span(65..66) }
Token { kind: INTEGER_LIT, span: Span(65..66) }
End { kind: PRIMARY_EXPR, span: Span(65..66) }
End { kind: TERM, span: Span(65..66) }
End { kind: EXPR, span: Span(61..66) }
Token { kind: WHITESPACE, span: Span(66..67) }
Token { kind: EQ, span: Span(67..69) }
Token { kind: WHITESPACE, span: Span(69..70) }
Begin { kind: EXPR, span: Span(70..71) }
Begin { kind: TERM, span: Span(70..71) }
Begin { kind: PRIMARY_EXPR, span: Span(70..71) }
Token { kind: INTEGER_LIT, span: Span(70..71) }
End { kind: PRIMARY_EXPR, span: Span(70..71) }
End { kind: TERM, span: Span(70..71) }
End { kind: EXPR, span: Span(70..71) }
End { kind: BOOLEAN_TERM, span: Span(61..71) }
End { kind: BOOLEAN_EXPR, span: Span(31..71) }
End { kind: CONDITION_BLK, span: Span(16..71) }
Token { kind: NEWLINE, span: Span(71..72) }
Token { kind: R_BRACE, span: Span(72..73) }
End { kind: RULE_DECL, span: Span(0..73) }
Token { kind: NEWLINE, span: Span(73..74) }
Token { kind: NEWLINE, span: Span(74..75) }
Begin { kind: RULE_DECL, span: Span(75..126) }
Token { kind: RULE_KW, span: Span(75..79) }
Token { kind: WHITESPACE, span: Span(79..80) }
Token { kind: IDENT, span: Span(80..86) }
Token { kind: WHITESPACE, span: Span(86..87) }
Token { kind: L_BRACE, span: Span(87..88) }
Token { kind: NEWLINE, span: Span(88..89) }
Token { kind: WHITESPACE, span: Span(89..91) }
Begin { kind: CONDITION_BLK, span: Span(91..124) }
Token { kind: CONDITION_KW, span: Span(91..100) }
Token { kind: COLON, span: Span(100..101) }
Token { kind: NEWLINE, span: Span(101..102) }
Token { kind: WHITESPACE, span: Span(102..106) }
Begin { kind: BOOLEAN_EXPR, span: Span(106..124) }
Begin { kind: BOOLEAN_TERM, span: Span(106..124) }
Begin { kind: EXPR, span: Span(106..119) }
Begin { kind: TERM, span: Span(106..107) }
Begin { kind: PRIMARY_EXPR, span: Span(106..107) }
Token { kind: INTEGER_LIT, span: Span(106..107) }
End { kind: PRIMARY_EXPR, span: Span(106..107) }
End { kind: TERM, span: Span(106..107) }
Token { kind: WHITESPACE, span: Span(107..108) }
Token { kind: BITWISE_OR, span: Span(108..109) }
Token { kind: WHITESPACE, span: Span(109..110) }
Begin { kind: TERM, span: Span(110..111) }
Begin { kind: PRIMARY_EXPR, span: Span(110..111) }
Token { kind: INTEGER_LIT, span: Span(110..111) }
End { kind: PRIMARY_EXPR, span: Span(110..111) }
End { kind: TERM, span: Span(110..111) }
Token { kind: WHITESPACE, span: Span(111..112) }
Token { kind: BITWISE_AND, span: Span(112..113) }
Token { kind: WHITESPACE, span: Span(113..114) }
Begin { kind: TERM, span: Span(114..115) }
Begin { kind: PRIMARY_EXPR, span: Span(114..115) }
Token { kind: INTEGER_LIT, span: Span(114..115) }
End { kind: PRIMARY_EXPR, span: Span(114..115) }
End { kind: TERM, span: Span(114..115) }
Token { kind: WHITESPACE, span: Span(115..116) }
Token { kind: BITWISE_XOR, span: Span(116..117) }
Token { kind: WHITESPACE, span: Span(117..118) }
Begin { kind: TERM, span: Span(118..119) }
Begin { kind: PRIMARY_EXPR, span: Span(118..119) }
Token { kind: INTEGER_LIT, span: Span(118..119) }
End { kind: PRIMARY_EXPR, span: Span(118..119) }
End { kind: TERM, span: Span(118..119) }
End { kind: EXPR, span: Span(106..119) }
Token { kind: WHITESPACE, span: Span(119..120) }
Token { kind: EQ, span: Span(120..122) }
Token { kind: WHITESPACE, span: Span(122..123) }
Begin { kind: EXPR, span: Span(123..124) }
Begin { kind: TERM, span: Span(123..124) }
Begin { kind: PRIMARY_EXPR, span: Span(123..124) }
Token { kind: INTEGER_LIT, span: Span(123..124) }
End { kind: PRIMARY_EXPR, span: Span(123..124) }
End { kind: TERM, span: Span(123..124) }
End { kind: EXPR, span: Span(123..124) }
End { kind: BOOLEAN_TERM, span: Span(106..124) }
End { kind: BOOLEAN_EXPR, span: Span(106..124) }
End { kind: CONDITION_BLK, span: Span(91..124) }
Token { kind: NEWLINE, span: Span(124..125) }
Token { kind: R_BRACE, span: Span(125..126) }
End { kind: RULE_DECL, span: Span(75..126) }
Token { kind: NEWLINE, span: Span(126..127) }
Token { kind: NEWLINE, span: Span(127..128) }
Begin { kind: RULE_DECL, span: Span(128..181) }
Token { kind: RULE_KW, span: Span(128..132) }
Token { kind: WHITESPACE, span: Span(132..133) }
Token { kind: IDENT, span: Span(133..139) }
Token { kind: WHITESPACE, span: Span(139..140) }
Token { kind: L_BRACE, span: Span(140..141) }
Token { kind: NEWLINE, span: Span(141..142) }
Token { kind: WHITESPACE, span: Span(142..144) }
Begin { kind: CONDITION_BLK, span: Span(144..179) }
Token { kind: CONDITION_KW, span: Span(144..153) }
Token { kind: COLON, span: Span(153..154) }
Token { kind: NEWLINE, span: Span(154..155) }
Token { kind: WHITESPACE, span: Span(155..159) }
Begin { kind: BOOLEAN_EXPR, span: Span(159..179) }
Begin { kind: BOOLEAN_TERM, span: Span(159..179) }
Begin { kind: EXPR, span: Span(159..171) }
Begin { kind: TERM, span: Span(159..164) }
Begin { kind: PRIMARY_EXPR, span: Span(159..164) }
Token { kind: BITWISE_NOT, span: Span(159..160) }
Begin { kind: TERM, span: Span(160..164) }
Begin { kind: PRIMARY_EXPR, span: Span(160..164) }
Token { kind: INTEGER_LIT, span: Span(160..164) }
End { kind: PRIMARY_EXPR, span: Span(160..164) }
End { kind: TERM, span: Span(160..164) }
End { kind: PRIMARY_EXPR, span: Span(159..164) }
End { kind: TERM, span: Span(159..164) }
Token { kind: WHITESPACE, span: Span(164..165) }
Token { kind: BITWISE_AND, span: Span(165..166) }
Token { kind: WHITESPACE, span: Span(166..167) }
Begin { kind: TERM, span: Span(167..171) }
Begin { kind: PRIMARY_EXPR, span: Span(167..171) }
Token { kind: INTEGER_LIT, span: Span(167..171) }
End { kind: PRIMARY_EXPR, span: Span(167..171) }
End { kind: TERM, span: Span(167..171) }
End { kind: EXPR, span: Span(159..171) }
Token { kind: WHITESPACE, span: Span(171..172) }
Token { kind: EQ, span: Span(172..174) }
Token { kind: WHITESPACE, span: Span(174..175) }
Begin { kind: EXPR, span: Span(175..179) }
Begin { kind: TERM, span: Span(175..179) }
Begin { kind: PRIMARY_EXPR, span: Span(175..179) }
Token { kind: INTEGER_LIT, span: Span(175..179) }
End { kind: PRIMARY_EXPR, span: Span(175..179) }
End { kind: TERM, span: Span(175..179) }
End { kind: EXPR, span: Span(175..179) }
End { kind: BOOLEAN_TERM, span: Span(159..179) }
End { kind: BOOLEAN_EXPR, span: Span(159..179) }
End { kind: CONDITION_BLK, span: Span(144..179) }
Token { kind: NEWLINE, span: Span(179..180) }
Token { kind: R_BRACE, span: Span(180..181) }
End { kind: RULE_DECL, span: Span(128..181) }
Token { kind: NEWLINE, span: Span(181..182) }
Token { kind: NEWLINE, span: Span(182..183) }
Begin { kind: RULE_DECL, span: Span(183..227) }
Token { kind: RULE_KW, span: Span(183..187) }
Token { kind: WHITESPACE, span: Span(187..188) }
Token { kind: IDENT, span: Span(188..194) }
Token { kind: WHITESPACE, span: Span(194..195) }
Token { kind: L_BRACE, span: Span(195..196) }
Token { kind: NEWLINE, span: Span(196..197) }
Token { kind: WHITESPACE, span: Span(197..199) }
Begin { kind: CONDITION_BLK, span: Span(199..225) }
Token { kind: CONDITION_KW, span: Span(199..208) }
Token { kind: COLON, span: Span(208..209) }
Token { kind: NEWLINE, span: Span(209..210) }
Token { kind: WHITESPACE, span: Span(210..214) }
Begin { kind: BOOLEAN_EXPR, span: Span(214..225) }
Begin { kind: BOOLEAN_TERM, span: Span(214..225) }
Begin { kind: EXPR, span: Span(214..220) }
Begin { kind: TERM, span: Span(214..215) }
Begin { kind: PRIMARY_EXPR, span: Span(214..215) }
Token { kind: INTEGER_LIT, span: Span(214..215) }
End { kind: PRIMARY_EXPR, span: Span(214..215) }
End { kind: TERM, span: Span(214..215) }
Token { kind: WHITESPACE, span: Span(215..216) }
Token { kind: SHL, span: Span(216..218) }
Token { kind: WHITESPACE, span: Span(218..219) }
Begin { kind: TERM, span: Span(219..220) }
Begin { kind: PRIMARY_EXPR, span: Span(219..220) }
Token { kind: INTEGER_LIT, span: Span(219..220) }
End { kind: PRIMARY_EXPR, span: Span(219..220) }
End { kind: TERM, span: Span(219..220) }
End { kind: EXPR, span: Span(214..220) }
Token { kind: WHITESPACE, span: Span(220..221) }
Token { kind: EQ, span: Span(221..223) }
Token { kind: WHITESPACE, span: Span(223..224) }
Begin { kind: EXPR, span: Span(224..225) }
Begin { kind: TERM, span: Span(224..225) }
Begin { kind: PRIMARY_EXPR, span: Span(224..225) }
Token { kind: INTEGER_LIT, span: Span(224..225) }
End { kind: PRIMARY_EXPR, span: Span(224..225) }
End { kind: TERM, span: Span(224..225) }
End { kind: EXPR, span: Span(224..225) }
End { kind: BOOLEAN_TERM, span: Span(214..225) }
End { kind: BOOLEAN_EXPR, span: Span(214..225) }
End { kind: CONDITION_BLK, span: Span(199..225) }
Token { kind: NEWLINE, span: Span(225..226) }
Token { kind: R_BRACE, span: Span(226..227) }
End { kind: RULE_DECL, span: Span(183..227) }
Token { kind: NEWLINE, span: Span(227..228) }
Token { kind: NEWLINE, span: Span(228..229) }
Begin { kind: RULE_DECL, span: Span(229..273) }
Token { kind: RULE_KW, span: Span(229..233) }
Token { kind: WHITESPACE, span: Span(233..234) }
Token { kind: IDENT, span: Span(234..240) }
Token { kind: WHITESPACE, span: Span(240..241) }
Token { kind: L_BRACE, span: Span(241..242) }
Token { kind: NEWLINE, span: Span(242..243) }
Token { kind: WHITESPACE, span: Span(243..245) }
Begin { kind: CONDITION_BLK, span: Span(245..271) }
Token { kind: CONDITION_KW, span: Span(245..254) }
Token { kind: COLON, span: Span(254..255) }
Token { kind: NEWLINE, span: Span(255..256) }
Token { kind: WHITESPACE, span: Span(256..260) }
Begin { kind: BOOLEAN_EXPR, span: Span(260..271) }
Begin { kind: BOOLEAN_TERM, span: Span(260..271) }
Begin { kind: EXPR, span: Span(260..266) }
Begin { kind: TERM, span: Span(260..261) }
Begin { kind: PRIMARY_EXPR, span: Span(260..261) }
Token { kind: INTEGER_LIT, span: Span(260..261) }
End { kind: PRIMARY_EXPR, span: Span(260..261) }
End { kind: TERM, span: Span(260..261) }
Token { kind: WHITESPACE, span: Span(261..262) }
Token { kind: SHR, span: Span(262..264) }
Token { kind: WHITESPACE, span: Span(264..265) }
Begin { kind: TERM, span: Span(265..266) }
Begin { kind: PRIMARY_EXPR, span: Span(265..266) }
Token { kind: INTEGER_LIT, span: Span(265..266) }
End { kind: PRIMARY_EXPR, span: Span(265..266) }
End { kind: TERM, span: Span(265..266) }
End { kind: EXPR, span: Span(260..266) }
Token { kind: WHITESPACE, span: Span(266..267) }
Token { kind: EQ, span: Span(267..269) }
Token { kind: WHITESPACE, span: Span(269..270) }
Begin { kind: EXPR, span: Span(270..271) }
Begin { kind: TERM, span: Span(270..271) }
Begin { kind: PRIMARY_EXPR, span: Span(270..271) }
Token { kind: INTEGER_LIT, span: Span(270..271) }
End { kind: PRIMARY_EXPR, span: Span(270..271) }
End { kind: TERM, span: Span(270..271) }
End { kind: EXPR, span: Span(270..271) }
End { kind: BOOLEAN_TERM, span: Span(260..271) }
End { kind: BOOLEAN_EXPR, span: Span(260..271) }
End { kind: CONDITION_BLK, span: Span(245..271) }
Token { kind: NEWLINE, span: Span(271..272) }
Token { kind: R_BRACE, span: Span(272..273) }
End { kind: RULE_DECL, span: Span(229..273) }
End { kind: SOURCE_FILE, span: Span(0..273) }