queries
c.h c.scm cpp.h cpp.scm cuda.h cuda.scm glsl.h glsl.scm go.h go.scm javascript.h javascript.scm kotlin.h kotlin.scm lua.h lua.scm odin.h odin.scm php.h php.scm python.h python.scm rust.h rust.scm tcl.h tcl.scm zig.h zig.scmtests
test.c test.cpp test.cu test.cuh test.glsl test.go test.js test.kt test.lua test.odin test.php test.py test.rs test.tcl test.zigvendor
tree-sitter
lib
src
alloc.c alloc.h array.h atomic.h clock.h error_costs.h get_changed_ranges.c get_changed_ranges.h host.h language.c language.h length.h lexer.c lexer.h lib.c node.c parser.c point.h query.c reduce_action.h reusable_node.h stack.c stack.h subtree.c subtree.h tree.c tree.h tree_cursor.c tree_cursor.h unicode.h
vendor/tree-sitter/lib/src/point.h
raw
1#ifndef TREE_SITTER_POINT_H_
2#define TREE_SITTER_POINT_H_
3
4#include "tree_sitter/api.h"
5
6#define POINT_ZERO ((TSPoint) {0, 0})
7#define POINT_MAX ((TSPoint) {UINT32_MAX, UINT32_MAX})
8
9static inline TSPoint point__new(unsigned row, unsigned column) {
10 TSPoint result = {row, column};
11 return result;
12}
13
14static inline TSPoint point_add(TSPoint a, TSPoint b) {
15 if (b.row > 0)
16 return point__new(a.row + b.row, b.column);
17 else
18 return point__new(a.row, a.column + b.column);
19}
20
21static inline TSPoint point_sub(TSPoint a, TSPoint b) {
22 if (a.row > b.row)
23 return point__new(a.row - b.row, a.column);
24 else
25 return point__new(0, a.column - b.column);
26}
27
28static inline bool point_lte(TSPoint a, TSPoint b) {
29 return (a.row < b.row) || (a.row == b.row && a.column <= b.column);
30}
31
32static inline bool point_lt(TSPoint a, TSPoint b) {
33 return (a.row < b.row) || (a.row == b.row && a.column < b.column);
34}
35
36static inline bool point_gt(TSPoint a, TSPoint b) {
37 return (a.row > b.row) || (a.row == b.row && a.column > b.column);
38}
39
40static inline bool point_gte(TSPoint a, TSPoint b) {
41 return (a.row > b.row) || (a.row == b.row && a.column >= b.column);
42}
43
44static inline bool point_eq(TSPoint a, TSPoint b) {
45 return a.row == b.row && a.column == b.column;
46}
47
48static inline TSPoint point_min(TSPoint a, TSPoint b) {
49 if (a.row < b.row || (a.row == b.row && a.column < b.column))
50 return a;
51 else
52 return b;
53}
54
55static inline TSPoint point_max(TSPoint a, TSPoint b) {
56 if (a.row > b.row || (a.row == b.row && a.column > b.column))
57 return a;
58 else
59 return b;
60}
61
62#endif