yara-x-parser 1.7.0

A parsing library for YARA rules.
Documentation
Begin { kind: SOURCE_FILE, span: Span(0..251) }
Begin { kind: RULE_DECL, span: Span(0..38) }
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..15) }
Begin { kind: ERROR, span: Span(15..36) }
Token { kind: CONDITION_KW, span: Span(15..24) }
Token { kind: COLON, span: Span(24..25) }
Token { kind: NEWLINE, span: Span(25..26) }
Token { kind: WHITESPACE, span: Span(26..28) }
Begin { kind: BOOLEAN_EXPR, span: Span(28..33) }
Begin { kind: BOOLEAN_TERM, span: Span(28..33) }
Begin { kind: EXPR, span: Span(28..33) }
Begin { kind: TERM, span: Span(28..29) }
Begin { kind: PRIMARY_EXPR, span: Span(28..29) }
Token { kind: INTEGER_LIT, span: Span(28..29) }
End { kind: PRIMARY_EXPR, span: Span(28..29) }
End { kind: TERM, span: Span(28..29) }
Token { kind: WHITESPACE, span: Span(29..30) }
Token { kind: ADD, span: Span(30..31) }
Token { kind: WHITESPACE, span: Span(31..32) }
Begin { kind: TERM, span: Span(32..33) }
Begin { kind: PRIMARY_EXPR, span: Span(32..33) }
Token { kind: INTEGER_LIT, span: Span(32..33) }
End { kind: PRIMARY_EXPR, span: Span(32..33) }
End { kind: TERM, span: Span(32..33) }
End { kind: EXPR, span: Span(28..33) }
End { kind: BOOLEAN_TERM, span: Span(28..33) }
End { kind: BOOLEAN_EXPR, span: Span(28..33) }
Token { kind: WHITESPACE, span: Span(33..34) }
Token { kind: EQ, span: Span(34..36) }
End { kind: ERROR, span: Span(15..36) }
Token { kind: NEWLINE, span: Span(36..37) }
Token { kind: R_BRACE, span: Span(37..38) }
Error { message: "expecting expression, found `}`", span: Span(37..38) }
End { kind: RULE_DECL, span: Span(0..38) }
Token { kind: NEWLINE, span: Span(38..39) }
Token { kind: NEWLINE, span: Span(39..40) }
Begin { kind: RULE_DECL, span: Span(40..81) }
Token { kind: RULE_KW, span: Span(40..44) }
Token { kind: WHITESPACE, span: Span(44..45) }
Token { kind: IDENT, span: Span(45..51) }
Token { kind: WHITESPACE, span: Span(51..52) }
Token { kind: L_BRACE, span: Span(52..53) }
Token { kind: NEWLINE, span: Span(53..54) }
Token { kind: WHITESPACE, span: Span(54..55) }
Begin { kind: ERROR, span: Span(55..79) }
Token { kind: CONDITION_KW, span: Span(55..64) }
Token { kind: COLON, span: Span(64..65) }
Token { kind: NEWLINE, span: Span(65..66) }
Token { kind: WHITESPACE, span: Span(66..68) }
Begin { kind: BOOLEAN_EXPR, span: Span(68..69) }
Begin { kind: BOOLEAN_TERM, span: Span(68..69) }
Begin { kind: EXPR, span: Span(68..69) }
Begin { kind: TERM, span: Span(68..69) }
Begin { kind: PRIMARY_EXPR, span: Span(68..69) }
Token { kind: INTEGER_LIT, span: Span(68..69) }
End { kind: PRIMARY_EXPR, span: Span(68..69) }
End { kind: TERM, span: Span(68..69) }
End { kind: EXPR, span: Span(68..69) }
End { kind: BOOLEAN_TERM, span: Span(68..69) }
End { kind: BOOLEAN_EXPR, span: Span(68..69) }
Token { kind: WHITESPACE, span: Span(69..70) }
Token { kind: PLUS, span: Span(70..71) }
Token { kind: PLUS, span: Span(71..72) }
Token { kind: WHITESPACE, span: Span(72..73) }
Token { kind: INTEGER_LIT, span: Span(73..74) }
Token { kind: WHITESPACE, span: Span(74..75) }
Token { kind: EQ, span: Span(75..77) }
Token { kind: WHITESPACE, span: Span(77..78) }
Token { kind: INTEGER_LIT, span: Span(78..79) }
End { kind: ERROR, span: Span(55..79) }
Token { kind: NEWLINE, span: Span(79..80) }
Token { kind: R_BRACE, span: Span(80..81) }
Error { message: "expecting expression, found `+`", span: Span(71..72) }
End { kind: RULE_DECL, span: Span(40..81) }
Token { kind: NEWLINE, span: Span(81..82) }
Token { kind: NEWLINE, span: Span(82..83) }
Begin { kind: RULE_DECL, span: Span(83..121) }
Token { kind: RULE_KW, span: Span(83..87) }
Token { kind: WHITESPACE, span: Span(87..88) }
Token { kind: IDENT, span: Span(88..94) }
Token { kind: WHITESPACE, span: Span(94..95) }
Token { kind: L_BRACE, span: Span(95..96) }
Token { kind: NEWLINE, span: Span(96..97) }
Token { kind: WHITESPACE, span: Span(97..98) }
Begin { kind: ERROR, span: Span(98..119) }
Token { kind: CONDITION_KW, span: Span(98..107) }
Token { kind: COLON, span: Span(107..108) }
Token { kind: NEWLINE, span: Span(108..109) }
Token { kind: WHITESPACE, span: Span(109..111) }
Begin { kind: BOOLEAN_EXPR, span: Span(111..112) }
Begin { kind: BOOLEAN_TERM, span: Span(111..112) }
Begin { kind: EXPR, span: Span(111..112) }
Begin { kind: TERM, span: Span(111..112) }
Begin { kind: PRIMARY_EXPR, span: Span(111..112) }
Token { kind: INTEGER_LIT, span: Span(111..112) }
End { kind: PRIMARY_EXPR, span: Span(111..112) }
End { kind: TERM, span: Span(111..112) }
End { kind: EXPR, span: Span(111..112) }
End { kind: BOOLEAN_TERM, span: Span(111..112) }
End { kind: BOOLEAN_EXPR, span: Span(111..112) }
Token { kind: WHITESPACE, span: Span(112..113) }
Token { kind: PLUS, span: Span(113..114) }
Token { kind: WHITESPACE, span: Span(114..115) }
Token { kind: EQ, span: Span(115..117) }
Token { kind: WHITESPACE, span: Span(117..118) }
Token { kind: INTEGER_LIT, span: Span(118..119) }
End { kind: ERROR, span: Span(98..119) }
Token { kind: NEWLINE, span: Span(119..120) }
Token { kind: R_BRACE, span: Span(120..121) }
Error { message: "expecting expression, found `==`", span: Span(115..117) }
End { kind: RULE_DECL, span: Span(83..121) }
Token { kind: NEWLINE, span: Span(121..122) }
Token { kind: NEWLINE, span: Span(122..123) }
Begin { kind: RULE_DECL, span: Span(123..167) }
Token { kind: RULE_KW, span: Span(123..127) }
Token { kind: WHITESPACE, span: Span(127..128) }
Token { kind: IDENT, span: Span(128..134) }
Token { kind: WHITESPACE, span: Span(134..135) }
Token { kind: L_BRACE, span: Span(135..136) }
Token { kind: NEWLINE, span: Span(136..137) }
Token { kind: WHITESPACE, span: Span(137..138) }
Begin { kind: ERROR, span: Span(138..165) }
Token { kind: CONDITION_KW, span: Span(138..147) }
Token { kind: COLON, span: Span(147..148) }
Token { kind: NEWLINE, span: Span(148..149) }
Token { kind: WHITESPACE, span: Span(149..152) }
Begin { kind: BOOLEAN_EXPR, span: Span(152..162) }
Begin { kind: BOOLEAN_TERM, span: Span(152..162) }
Begin { kind: EXPR, span: Span(152..162) }
Begin { kind: TERM, span: Span(152..162) }
Begin { kind: PRIMARY_EXPR, span: Span(152..155) }
Token { kind: IDENT, span: Span(152..155) }
End { kind: PRIMARY_EXPR, span: Span(152..155) }
Token { kind: L_BRACKET, span: Span(155..156) }
Begin { kind: EXPR, span: Span(156..161) }
Begin { kind: TERM, span: Span(156..161) }
Begin { kind: PRIMARY_EXPR, span: Span(156..161) }
Token { kind: STRING_LIT, span: Span(156..161) }
End { kind: PRIMARY_EXPR, span: Span(156..161) }
End { kind: TERM, span: Span(156..161) }
End { kind: EXPR, span: Span(156..161) }
Token { kind: R_BRACKET, span: Span(161..162) }
End { kind: TERM, span: Span(152..162) }
End { kind: EXPR, span: Span(152..162) }
End { kind: BOOLEAN_TERM, span: Span(152..162) }
End { kind: BOOLEAN_EXPR, span: Span(152..162) }
Token { kind: L_PAREN, span: Span(162..163) }
Token { kind: INTEGER_LIT, span: Span(163..164) }
Token { kind: R_PAREN, span: Span(164..165) }
End { kind: ERROR, span: Span(138..165) }
Token { kind: NEWLINE, span: Span(165..166) }
Token { kind: R_BRACE, span: Span(166..167) }
Error { message: "expecting operator, `of`, expression or `}`, found `(`", span: Span(162..163) }
End { kind: RULE_DECL, span: Span(123..167) }
Token { kind: NEWLINE, span: Span(167..168) }
Token { kind: NEWLINE, span: Span(168..169) }
Begin { kind: RULE_DECL, span: Span(169..250) }
Token { kind: RULE_KW, span: Span(169..173) }
Token { kind: WHITESPACE, span: Span(173..174) }
Token { kind: IDENT, span: Span(174..180) }
Token { kind: WHITESPACE, span: Span(180..181) }
Token { kind: L_BRACE, span: Span(181..182) }
Token { kind: NEWLINE, span: Span(182..183) }
Token { kind: WHITESPACE, span: Span(183..186) }
Begin { kind: PATTERNS_BLK, span: Span(186..210) }
Token { kind: STRINGS_KW, span: Span(186..193) }
Token { kind: COLON, span: Span(193..194) }
Token { kind: NEWLINE, span: Span(194..195) }
Token { kind: WHITESPACE, span: Span(195..200) }
Begin { kind: PATTERN_DEF, span: Span(200..210) }
Token { kind: PATTERN_IDENT, span: Span(200..202) }
Token { kind: WHITESPACE, span: Span(202..203) }
Token { kind: EQUAL, span: Span(203..204) }
Token { kind: WHITESPACE, span: Span(204..205) }
Token { kind: STRING_LIT, span: Span(205..210) }
End { kind: PATTERN_DEF, span: Span(200..210) }
End { kind: PATTERNS_BLK, span: Span(186..210) }
Token { kind: NEWLINE, span: Span(210..211) }
Token { kind: WHITESPACE, span: Span(211..214) }
Begin { kind: ERROR, span: Span(214..248) }
Token { kind: CONDITION_KW, span: Span(214..223) }
Token { kind: COLON, span: Span(223..224) }
Token { kind: NEWLINE, span: Span(224..225) }
Token { kind: WHITESPACE, span: Span(225..230) }
Begin { kind: BOOLEAN_EXPR, span: Span(230..237) }
Begin { kind: BOOLEAN_TERM, span: Span(230..237) }
Token { kind: PATTERN_IDENT, span: Span(230..232) }
Token { kind: WHITESPACE, span: Span(232..233) }
Token { kind: AT_KW, span: Span(233..235) }
Token { kind: WHITESPACE, span: Span(235..236) }
Begin { kind: EXPR, span: Span(236..237) }
Begin { kind: TERM, span: Span(236..237) }
Begin { kind: PRIMARY_EXPR, span: Span(236..237) }
Token { kind: INTEGER_LIT, span: Span(236..237) }
End { kind: PRIMARY_EXPR, span: Span(236..237) }
End { kind: TERM, span: Span(236..237) }
End { kind: EXPR, span: Span(236..237) }
End { kind: BOOLEAN_TERM, span: Span(230..237) }
End { kind: BOOLEAN_EXPR, span: Span(230..237) }
Token { kind: WHITESPACE, span: Span(237..238) }
Token { kind: IN_KW, span: Span(238..240) }
Token { kind: WHITESPACE, span: Span(240..241) }
Token { kind: L_PAREN, span: Span(241..242) }
Token { kind: INTEGER_LIT, span: Span(242..243) }
Token { kind: DOT, span: Span(243..244) }
Token { kind: DOT, span: Span(244..245) }
Token { kind: INTEGER_LIT, span: Span(245..247) }
Token { kind: R_PAREN, span: Span(247..248) }
End { kind: ERROR, span: Span(214..248) }
Token { kind: NEWLINE, span: Span(248..249) }
Token { kind: R_BRACE, span: Span(249..250) }
Error { message: "expecting `[`, `.`, operator or `}`, found `in`", span: Span(238..240) }
End { kind: RULE_DECL, span: Span(169..250) }
Token { kind: NEWLINE, span: Span(250..251) }
End { kind: SOURCE_FILE, span: Span(0..251) }