Serene Runtime
1.0.0
C runtime for the Serene programming language
Loading...
Searching...
No Matches
keywords.h
Go to the documentation of this file.
1
/* -*- C -*-
2
* Serene programming language
3
* Copyright (C) 2019-2026 Sameer Rahmani <
[email protected]
>
4
*
5
* This library is free software: you can redistribute it and/or modify
6
* it under the terms of the GNU Lesser General Public License as published by
7
* the Free Software Foundation, either version 3 of the License, or
8
* (at your option) any later version.
9
*
10
* This library is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU Lesser General Public License for more details.
14
*
15
* You should have received a copy of the GNU Lesser General Public License
16
* along with this library. If not, see <https://www.gnu.org/licenses/>.
17
*/
18
#pragma once
19
20
#include "
serene/rt/core.h
"
21
22
typedef
struct
srn_context_t
srn_context_t
;
23
typedef
struct
srn_string_t
srn_string_t
;
24
25
/// A keyword: just a name. Unlike Clojure, slashes are part of the name, so
26
/// :foo/bar is a single keyword named "foo/bar" with no namespace component.
27
/// Keywords are interned engine-wide; two srn_keyword_make calls with the same
28
/// name return the same srn_value_t*.
29
typedef
struct
srn_keyword_t
{
30
srn_string_t
*
name
;
31
}
srn_keyword_t
;
32
33
[[gnu::nonnull(1, 3)]]
srn_value_t
*
srn_keyword_make
(
srn_context_t
*ctx,
34
srn_metadata_t
*metadata,
35
const
char
*name);
core.h
srn_keyword_make
srn_value_t * srn_keyword_make(srn_context_t *ctx, srn_metadata_t *metadata, const char *name)
Definition
keywords.c:22
srn_context_t
Definition
context.h:47
srn_keyword_t
A keyword: just a name.
Definition
keywords.h:29
srn_keyword_t::name
srn_string_t * name
Definition
keywords.h:30
srn_metadata_t
Definition
core.h:57
srn_string_t
Definition
strings.h:33
srn_value_t
Definition
core.h:131
serene
rt
keywords.h
Serene Runtime is free software, licensed under the
GNU LGPL v3
License.