yara-x-parser 1.6.0

A parsing library for YARA rules.
Documentation
Begin { kind: SOURCE_FILE, span: Span(0..238) }
Begin { kind: RULE_DECL, span: Span(0..74) }
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: PATTERNS_BLK, span: Span(16..39) }
Token { kind: STRINGS_KW, span: Span(16..23) }
Token { kind: COLON, span: Span(23..24) }
Token { kind: NEWLINE, span: Span(24..25) }
Token { kind: WHITESPACE, span: Span(25..29) }
Begin { kind: PATTERN_DEF, span: Span(29..39) }
Token { kind: PATTERN_IDENT, span: Span(29..31) }
Token { kind: WHITESPACE, span: Span(31..32) }
Token { kind: EQUAL, span: Span(32..33) }
Token { kind: WHITESPACE, span: Span(33..34) }
Token { kind: STRING_LIT, span: Span(34..39) }
End { kind: PATTERN_DEF, span: Span(29..39) }
End { kind: PATTERNS_BLK, span: Span(16..39) }
Token { kind: NEWLINE, span: Span(39..40) }
Token { kind: WHITESPACE, span: Span(40..42) }
Begin { kind: CONDITION_BLK, span: Span(42..72) }
Token { kind: CONDITION_KW, span: Span(42..51) }
Token { kind: COLON, span: Span(51..52) }
Token { kind: NEWLINE, span: Span(52..53) }
Token { kind: WHITESPACE, span: Span(53..57) }
Begin { kind: BOOLEAN_EXPR, span: Span(57..72) }
Begin { kind: BOOLEAN_TERM, span: Span(57..72) }
Token { kind: PATTERN_IDENT, span: Span(57..59) }
Token { kind: WHITESPACE, span: Span(59..60) }
Token { kind: AT_KW, span: Span(60..62) }
Token { kind: WHITESPACE, span: Span(62..63) }
Begin { kind: EXPR, span: Span(63..72) }
Begin { kind: TERM, span: Span(63..66) }
Begin { kind: PRIMARY_EXPR, span: Span(63..66) }
Token { kind: INTEGER_LIT, span: Span(63..66) }
End { kind: PRIMARY_EXPR, span: Span(63..66) }
End { kind: TERM, span: Span(63..66) }
Token { kind: WHITESPACE, span: Span(66..67) }
Token { kind: ADD, span: Span(67..68) }
Token { kind: WHITESPACE, span: Span(68..69) }
Begin { kind: TERM, span: Span(69..72) }
Begin { kind: PRIMARY_EXPR, span: Span(69..72) }
Token { kind: INTEGER_LIT, span: Span(69..72) }
End { kind: PRIMARY_EXPR, span: Span(69..72) }
End { kind: TERM, span: Span(69..72) }
End { kind: EXPR, span: Span(63..72) }
End { kind: BOOLEAN_TERM, span: Span(57..72) }
End { kind: BOOLEAN_EXPR, span: Span(57..72) }
End { kind: CONDITION_BLK, span: Span(42..72) }
Token { kind: NEWLINE, span: Span(72..73) }
Token { kind: R_BRACE, span: Span(73..74) }
End { kind: RULE_DECL, span: Span(0..74) }
Token { kind: NEWLINE, span: Span(74..75) }
Token { kind: NEWLINE, span: Span(75..76) }
Token { kind: NEWLINE, span: Span(76..77) }
Begin { kind: RULE_DECL, span: Span(77..161) }
Token { kind: RULE_KW, span: Span(77..81) }
Token { kind: WHITESPACE, span: Span(81..82) }
Token { kind: IDENT, span: Span(82..88) }
Token { kind: WHITESPACE, span: Span(88..89) }
Token { kind: L_BRACE, span: Span(89..90) }
Token { kind: NEWLINE, span: Span(90..91) }
Token { kind: WHITESPACE, span: Span(91..93) }
Begin { kind: PATTERNS_BLK, span: Span(93..116) }
Token { kind: STRINGS_KW, span: Span(93..100) }
Token { kind: COLON, span: Span(100..101) }
Token { kind: NEWLINE, span: Span(101..102) }
Token { kind: WHITESPACE, span: Span(102..106) }
Begin { kind: PATTERN_DEF, span: Span(106..116) }
Token { kind: PATTERN_IDENT, span: Span(106..108) }
Token { kind: WHITESPACE, span: Span(108..109) }
Token { kind: EQUAL, span: Span(109..110) }
Token { kind: WHITESPACE, span: Span(110..111) }
Token { kind: STRING_LIT, span: Span(111..116) }
End { kind: PATTERN_DEF, span: Span(106..116) }
End { kind: PATTERNS_BLK, span: Span(93..116) }
Token { kind: NEWLINE, span: Span(116..117) }
Token { kind: WHITESPACE, span: Span(117..119) }
Begin { kind: CONDITION_BLK, span: Span(119..159) }
Token { kind: CONDITION_KW, span: Span(119..128) }
Token { kind: COLON, span: Span(128..129) }
Token { kind: NEWLINE, span: Span(129..130) }
Token { kind: WHITESPACE, span: Span(130..134) }
Begin { kind: BOOLEAN_EXPR, span: Span(134..159) }
Begin { kind: BOOLEAN_TERM, span: Span(134..159) }
Begin { kind: EXPR, span: Span(134..154) }
Begin { kind: TERM, span: Span(134..154) }
Begin { kind: PRIMARY_EXPR, span: Span(134..154) }
Token { kind: PATTERN_COUNT, span: Span(134..136) }
Token { kind: WHITESPACE, span: Span(136..137) }
Token { kind: IN_KW, span: Span(137..139) }
Token { kind: WHITESPACE, span: Span(139..140) }
Begin { kind: RANGE, span: Span(140..154) }
Token { kind: L_PAREN, span: Span(140..141) }
Begin { kind: EXPR, span: Span(141..148) }
Begin { kind: TERM, span: Span(141..144) }
Begin { kind: PRIMARY_EXPR, span: Span(141..144) }
Token { kind: INTEGER_LIT, span: Span(141..144) }
End { kind: PRIMARY_EXPR, span: Span(141..144) }
End { kind: TERM, span: Span(141..144) }
Token { kind: ADD, span: Span(144..145) }
Begin { kind: TERM, span: Span(145..148) }
Begin { kind: PRIMARY_EXPR, span: Span(145..148) }
Token { kind: INTEGER_LIT, span: Span(145..148) }
End { kind: PRIMARY_EXPR, span: Span(145..148) }
End { kind: TERM, span: Span(145..148) }
End { kind: EXPR, span: Span(141..148) }
Token { kind: DOT, span: Span(148..149) }
Token { kind: DOT, span: Span(149..150) }
Begin { kind: EXPR, span: Span(150..153) }
Begin { kind: TERM, span: Span(150..153) }
Begin { kind: PRIMARY_EXPR, span: Span(150..153) }
Token { kind: INTEGER_LIT, span: Span(150..153) }
End { kind: PRIMARY_EXPR, span: Span(150..153) }
End { kind: TERM, span: Span(150..153) }
End { kind: EXPR, span: Span(150..153) }
Token { kind: R_PAREN, span: Span(153..154) }
End { kind: RANGE, span: Span(140..154) }
End { kind: PRIMARY_EXPR, span: Span(134..154) }
End { kind: TERM, span: Span(134..154) }
End { kind: EXPR, span: Span(134..154) }
Token { kind: WHITESPACE, span: Span(154..155) }
Token { kind: EQ, span: Span(155..157) }
Token { kind: WHITESPACE, span: Span(157..158) }
Begin { kind: EXPR, span: Span(158..159) }
Begin { kind: TERM, span: Span(158..159) }
Begin { kind: PRIMARY_EXPR, span: Span(158..159) }
Token { kind: INTEGER_LIT, span: Span(158..159) }
End { kind: PRIMARY_EXPR, span: Span(158..159) }
End { kind: TERM, span: Span(158..159) }
End { kind: EXPR, span: Span(158..159) }
End { kind: BOOLEAN_TERM, span: Span(134..159) }
End { kind: BOOLEAN_EXPR, span: Span(134..159) }
End { kind: CONDITION_BLK, span: Span(119..159) }
Token { kind: NEWLINE, span: Span(159..160) }
Token { kind: R_BRACE, span: Span(160..161) }
End { kind: RULE_DECL, span: Span(77..161) }
Token { kind: NEWLINE, span: Span(161..162) }
Token { kind: NEWLINE, span: Span(162..163) }
Token { kind: NEWLINE, span: Span(163..164) }
Begin { kind: RULE_DECL, span: Span(164..238) }
Token { kind: RULE_KW, span: Span(164..168) }
Token { kind: WHITESPACE, span: Span(168..169) }
Token { kind: IDENT, span: Span(169..175) }
Token { kind: WHITESPACE, span: Span(175..176) }
Token { kind: L_BRACE, span: Span(176..177) }
Token { kind: NEWLINE, span: Span(177..178) }
Token { kind: WHITESPACE, span: Span(178..180) }
Begin { kind: PATTERNS_BLK, span: Span(180..203) }
Token { kind: STRINGS_KW, span: Span(180..187) }
Token { kind: COLON, span: Span(187..188) }
Token { kind: NEWLINE, span: Span(188..189) }
Token { kind: WHITESPACE, span: Span(189..193) }
Begin { kind: PATTERN_DEF, span: Span(193..203) }
Token { kind: PATTERN_IDENT, span: Span(193..195) }
Token { kind: WHITESPACE, span: Span(195..196) }
Token { kind: EQUAL, span: Span(196..197) }
Token { kind: WHITESPACE, span: Span(197..198) }
Token { kind: STRING_LIT, span: Span(198..203) }
End { kind: PATTERN_DEF, span: Span(193..203) }
End { kind: PATTERNS_BLK, span: Span(180..203) }
Token { kind: NEWLINE, span: Span(203..204) }
Token { kind: WHITESPACE, span: Span(204..206) }
Begin { kind: CONDITION_BLK, span: Span(206..236) }
Token { kind: CONDITION_KW, span: Span(206..215) }
Token { kind: COLON, span: Span(215..216) }
Token { kind: NEWLINE, span: Span(216..217) }
Token { kind: WHITESPACE, span: Span(217..221) }
Begin { kind: BOOLEAN_EXPR, span: Span(221..236) }
Begin { kind: BOOLEAN_TERM, span: Span(221..236) }
Begin { kind: EXPR, span: Span(221..226) }
Begin { kind: TERM, span: Span(221..226) }
Begin { kind: PRIMARY_EXPR, span: Span(221..226) }
Token { kind: PATTERN_OFFSET, span: Span(221..223) }
Token { kind: L_BRACKET, 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) }
Token { kind: R_BRACKET, span: Span(225..226) }
End { kind: PRIMARY_EXPR, span: Span(221..226) }
End { kind: TERM, span: Span(221..226) }
End { kind: EXPR, span: Span(221..226) }
Token { kind: WHITESPACE, span: Span(226..227) }
Token { kind: EQ, span: Span(227..229) }
Token { kind: WHITESPACE, span: Span(229..230) }
Begin { kind: EXPR, span: Span(230..236) }
Begin { kind: TERM, span: Span(230..236) }
Begin { kind: PRIMARY_EXPR, span: Span(230..236) }
Token { kind: INTEGER_LIT, span: Span(230..236) }
End { kind: PRIMARY_EXPR, span: Span(230..236) }
End { kind: TERM, span: Span(230..236) }
End { kind: EXPR, span: Span(230..236) }
End { kind: BOOLEAN_TERM, span: Span(221..236) }
End { kind: BOOLEAN_EXPR, span: Span(221..236) }
End { kind: CONDITION_BLK, span: Span(206..236) }
Token { kind: NEWLINE, span: Span(236..237) }
Token { kind: R_BRACE, span: Span(237..238) }
End { kind: RULE_DECL, span: Span(164..238) }
End { kind: SOURCE_FILE, span: Span(0..238) }