tree-sitter-zig
Version:
Zig grammar for tree-sitter
247 lines (222 loc) • 5.55 kB
Plain Text
============================================
Empty statements
============================================
;
(source_file (empty_statement))
============================================
Assigments statements
============================================
const a = 10;
var b = 1.1;
const a: u32 = 10;
var b: f128 = x;
var c: MyType = y;
var d: ?u64 = null;
threadlocal var a = 10;
threadlocal var a: ?u32 = 10;
comptime var a = 10;
var a: ?[4]?u8 = undefined;
const a: []u8 = undefined;
const b: [*]u8 = undefined;
const a: *u8 = undefined;
const b: *?u8 = undefined;
const c: *[*]u64 = undefined;
(source_file
(assignment_statement
name: (identifier)
expression: (integer_literal))
(assignment_statement
name: (identifier)
expression: (float_literal))
(assignment_statement
name: (identifier)
type: (primitive_type)
expression: (integer_literal))
(assignment_statement
name: (identifier)
type: (primitive_type)
expression: (identifier))
(assignment_statement
name: (identifier)
type: (type_identifier)
expression: (identifier))
(assignment_statement
name: (identifier)
type: (optional_type
(primitive_type))
expression: (null_literal))
(assignment_statement
(assignment_modifier)
name: (identifier)
expression: (integer_literal))
(assignment_statement
(assignment_modifier)
name: (identifier)
type: (optional_type
(primitive_type))
expression: (integer_literal))
(assignment_statement
(assignment_modifier)
name: (identifier)
expression: (integer_literal))
(assignment_statement
name: (identifier)
type: (optional_type
(array_type
size: (integer_literal)
(optional_type
(primitive_type))))
expression: (undefined_literal))
(assignment_statement
name: (identifier)
type: (array_type
(primitive_type))
expression: (undefined_literal))
(assignment_statement
name: (identifier)
type: (array_type
size: (pointer)
(primitive_type))
expression: (undefined_literal))
(assignment_statement
name: (identifier)
type: (pointer_type
(primitive_type))
expression: (undefined_literal))
(assignment_statement
name: (identifier)
type: (pointer_type
(optional_type
(primitive_type)))
expression: (undefined_literal))
(assignment_statement
name: (identifier)
type: (pointer_type
(array_type
size: (pointer)
(primitive_type)))
expression: (undefined_literal)))
============================================
Function declaration statements
============================================
fn name() {}
fn name(a: u8) {}
fn name(a: u8, b: u8) {}
fn name() u8 {}
fn name() @some(a) {}
pub fn name() {}
export fn name() {}
stdcallcc fn name() {}
nakedcc fn name() {}
inline fn name() {}
(source_file
(function_declaration
name: (identifier)
parameters: (parameters)
body: (block))
(function_declaration
name: (identifier)
parameters: (parameters
(parameter
name: (identifier)
type: (primitive_type)))
body: (block))
(function_declaration
name: (identifier)
parameters: (parameters
(parameter
name: (identifier)
type: (primitive_type))
(parameter
name: (identifier)
type: (primitive_type)))
body: (block))
(function_declaration
name: (identifier)
parameters: (parameters)
return: (primitive_type)
body: (block))
(function_declaration
name: (identifier)
parameters: (parameters)
return: (build_in_call_expr
function: (identifier)
arguments: (arguments
(identifier)))
body: (block))
(function_declaration
(visibility_modifier)
name: (identifier)
parameters: (parameters)
body: (block))
(function_declaration
(function_modifiers)
name: (identifier)
parameters: (parameters)
body: (block))
(function_declaration
(function_modifiers)
name: (identifier)
parameters: (parameters)
body: (block))
(function_declaration
(function_modifiers)
name: (identifier)
parameters: (parameters)
body: (block))
(function_declaration
(function_modifiers)
name: (identifier)
parameters: (parameters)
body: (block)))
============================================
Function signature statements
============================================
fn name();
fn name(a: u8);
fn name(a: u8) u8;
fn name(a: u8) @some(a);
extern fn name();
extern "C" fn name();
(source_file
(function_signature
name: (identifier)
parameters: (parameters))
(function_signature
name: (identifier)
parameters: (parameters
(parameter
name: (identifier)
type: (primitive_type))))
(function_signature
name: (identifier)
parameters: (parameters
(parameter
name: (identifier)
type: (primitive_type)))
return: (primitive_type))
(function_signature
name: (identifier)
parameters: (parameters
(parameter
name: (identifier)
type: (primitive_type)))
return: (build_in_call_expr
function: (identifier)
arguments: (arguments
(identifier))))
(function_signature
(function_modifiers
(extern_modifier))
name: (identifier)
parameters: (parameters))
(function_signature
(function_modifiers
(extern_modifier
(string_literal)))
name: (identifier)
parameters: (parameters)))