Zettelstore Client

Check-in [e0d62ad54c]
Login

Check-in [e0d62ad54c]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Remove all symbol value constants
Timelines: family | ancestors | nospace
Files: files | file ages | folders
SHA3-256: e0d62ad54c46f3404ffcc48eab06123edb6677cec0e560876a8a0e7622f04312
User & Date: stern 2024-06-20 16:31:29
Context
2024-06-20
16:31
Remove all symbol value constants ... (Leaf check-in: e0d62ad54c user: stern tags: nospace)
16:14
Replace symbol value map with symbol map in Walk function ... (check-in: e51a0e22de user: stern tags: nospace)
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to sz/const.go.

13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102

103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198

package sz

import "t73f.de/r/sx"

// Various constants for Zettel data. Some of them are technically variables.

const (
	// Symbols for Metanodes
	NameBlock  = "BLOCK"
	NameInline = "INLINE"
	NameMeta   = "META"

	// Symbols for Zettel noMakede types.
	NameBLOB            = "BLOB"
	NameCell            = "CELL"
	NameCellCenter      = "CELL-CENTER"
	NameCellLeft        = "CELL-LEFT"
	NameCellRight       = "CELL-RIGHT"
	NameCite            = "CITE"
	NameDescription     = "DESCRIPTION"
	NameEmbed           = "EMBED"
	NameEmbedBLOB       = "EMBED-BLOB"
	NameEndnote         = "ENDNOTE"
	NameFormatEmph      = "FORMAT-EMPH"
	NameFormatDelete    = "FORMAT-DELETE"
	NameFormatInsert    = "FORMAT-INSERT"
	NameFormatMark      = "FORMAT-MARK"
	NameFormatQuote     = "FORMAT-QUOTE"
	NameFormatSpan      = "FORMAT-SPAN"
	NameFormatSub       = "FORMAT-SUB"
	NameFormatSuper     = "FORMAT-SUPER"
	NameFormatStrong    = "FORMAT-STRONG"
	NameHard            = "HARD"
	NameHeading         = "HEADING"
	NameLinkInvalid     = "LINK-INVALID"
	NameLinkZettel      = "LINK-ZETTEL"
	NameLinkSelf        = "LINK-SELF"
	NameLinkFound       = "LINK-FOUND"
	NameLinkBroken      = "LINK-BROKEN"
	NameLinkHosted      = "LINK-HOSTED"
	NameLinkBased       = "LINK-BASED"
	NameLinkQuery       = "LINK-QUERY"
	NameLinkExternal    = "LINK-EXTERNAL"
	NameListOrdered     = "ORDERED"
	NameListUnordered   = "UNORDERED"
	NameListQuote       = "QUOTATION"
	NameLiteralProg     = "LITERAL-CODE"
	NameLiteralComment  = "LITERAL-COMMENT"
	NameLiteralHTML     = "LITERAL-HTML"
	NameLiteralInput    = "LITERAL-INPUT"
	NameLiteralMath     = "LITERAL-MATH"
	NameLiteralOutput   = "LITERAL-OUTPUT"
	NameLiteralZettel   = "LITERAL-ZETTEL"
	NameMark            = "MARK"
	NamePara            = "PARA"
	NameRegionBlock     = "REGION-BLOCK"
	NameRegionQuote     = "REGION-QUOTE"
	NameRegionVerse     = "REGION-VERSE"
	NameSoft            = "SOFT"
	NameTable           = "TABLE"
	NameText            = "TEXT"
	NameThematic        = "THEMATIC"
	NameTransclude      = "TRANSCLUDE"
	NameUnknown         = "UNKNOWN-NODE"
	NameVerbatimComment = "VERBATIM-COMMENT"
	NameVerbatimEval    = "VERBATIM-EVAL"
	NameVerbatimHTML    = "VERBATIM-HTML"
	NameVerbatimMath    = "VERBATIM-MATH"
	NameVerbatimProg    = "VERBATIM-CODE"
	NameVerbatimZettel  = "VERBATIM-ZETTEL"

	// Constant symbols for reference states.
	NameRefStateInvalid  = "INVALID"
	NameRefStateZettel   = "ZETTEL"
	NameRefStateSelf     = "SELF"
	NameRefStateFound    = "FOUND"
	NameRefStateBroken   = "BROKEN"
	NameRefStateHosted   = "HOSTED"
	NameRefStateBased    = "BASED"
	NameRefStateQuery    = "QUERY"
	NameRefStateExternal = "EXTERNAL"

	// Symbols for metadata types.
	NameTypeCredential   = "CREDENTIAL"
	NameTypeEmpty        = "EMPTY-STRING"
	NameTypeID           = "ZID"
	NameTypeIDSet        = "ZID-SET"
	NameTypeNumber       = "NUMBER"
	NameTypeString       = "STRING"

	NameTypeTagSet       = "TAG-SET"
	NameTypeTimestamp    = "TIMESTAMP"
	NameTypeURL          = "URL"
	NameTypeWord         = "WORD"
	NameTypeZettelmarkup = "ZETTELMARKUP"
)

var (
	// Symbols for Metanodes
	SymBlock  = sx.MakeSymbol(NameBlock)
	SymInline = sx.MakeSymbol(NameInline)
	SymMeta   = sx.MakeSymbol(NameMeta)

	// Symbols for Zettel noMakede types.
	SymBLOB            = sx.MakeSymbol(NameBLOB)
	SymCell            = sx.MakeSymbol(NameCell)
	SymCellCenter      = sx.MakeSymbol(NameCellCenter)
	SymCellLeft        = sx.MakeSymbol(NameCellLeft)
	SymCellRight       = sx.MakeSymbol(NameCellRight)
	SymCite            = sx.MakeSymbol(NameCite)
	SymDescription     = sx.MakeSymbol(NameDescription)
	SymEmbed           = sx.MakeSymbol(NameEmbed)
	SymEmbedBLOB       = sx.MakeSymbol(NameEmbedBLOB)
	SymEndnote         = sx.MakeSymbol(NameEndnote)
	SymFormatEmph      = sx.MakeSymbol(NameFormatEmph)
	SymFormatDelete    = sx.MakeSymbol(NameFormatDelete)
	SymFormatInsert    = sx.MakeSymbol(NameFormatInsert)
	SymFormatMark      = sx.MakeSymbol(NameFormatMark)
	SymFormatQuote     = sx.MakeSymbol(NameFormatQuote)
	SymFormatSpan      = sx.MakeSymbol(NameFormatSpan)
	SymFormatSub       = sx.MakeSymbol(NameFormatSub)
	SymFormatSuper     = sx.MakeSymbol(NameFormatSuper)
	SymFormatStrong    = sx.MakeSymbol(NameFormatStrong)
	SymHard            = sx.MakeSymbol(NameHard)
	SymHeading         = sx.MakeSymbol(NameHeading)
	SymLinkInvalid     = sx.MakeSymbol(NameLinkInvalid)
	SymLinkZettel      = sx.MakeSymbol(NameLinkZettel)
	SymLinkSelf        = sx.MakeSymbol(NameLinkSelf)
	SymLinkFound       = sx.MakeSymbol(NameLinkFound)
	SymLinkBroken      = sx.MakeSymbol(NameLinkBroken)
	SymLinkHosted      = sx.MakeSymbol(NameLinkHosted)
	SymLinkBased       = sx.MakeSymbol(NameLinkBased)
	SymLinkQuery       = sx.MakeSymbol(NameLinkQuery)
	SymLinkExternal    = sx.MakeSymbol(NameLinkExternal)
	SymListOrdered     = sx.MakeSymbol(NameListOrdered)
	SymListUnordered   = sx.MakeSymbol(NameListUnordered)
	SymListQuote       = sx.MakeSymbol(NameListQuote)
	SymLiteralProg     = sx.MakeSymbol(NameLiteralProg)
	SymLiteralComment  = sx.MakeSymbol(NameLiteralComment)
	SymLiteralHTML     = sx.MakeSymbol(NameLiteralHTML)
	SymLiteralInput    = sx.MakeSymbol(NameLiteralInput)
	SymLiteralMath     = sx.MakeSymbol(NameLiteralMath)
	SymLiteralOutput   = sx.MakeSymbol(NameLiteralOutput)
	SymLiteralZettel   = sx.MakeSymbol(NameLiteralZettel)
	SymMark            = sx.MakeSymbol(NameMark)
	SymPara            = sx.MakeSymbol(NamePara)
	SymRegionBlock     = sx.MakeSymbol(NameRegionBlock)
	SymRegionQuote     = sx.MakeSymbol(NameRegionQuote)
	SymRegionVerse     = sx.MakeSymbol(NameRegionVerse)
	SymSoft            = sx.MakeSymbol(NameSoft)
	SymTable           = sx.MakeSymbol(NameTable)
	SymText            = sx.MakeSymbol(NameText)
	SymThematic        = sx.MakeSymbol(NameThematic)
	SymTransclude      = sx.MakeSymbol(NameTransclude)
	SymUnknown         = sx.MakeSymbol(NameUnknown)
	SymVerbatimComment = sx.MakeSymbol(NameVerbatimComment)
	SymVerbatimEval    = sx.MakeSymbol(NameVerbatimEval)
	SymVerbatimHTML    = sx.MakeSymbol(NameVerbatimHTML)
	SymVerbatimMath    = sx.MakeSymbol(NameVerbatimMath)
	SymVerbatimProg    = sx.MakeSymbol(NameVerbatimProg)
	SymVerbatimZettel  = sx.MakeSymbol(NameVerbatimZettel)

	// Constant symbols for reference states.
	SymRefStateInvalid  = sx.MakeSymbol(NameRefStateInvalid)
	SymRefStateZettel   = sx.MakeSymbol(NameRefStateZettel)
	SymRefStateSelf     = sx.MakeSymbol(NameRefStateSelf)
	SymRefStateFound    = sx.MakeSymbol(NameRefStateFound)
	SymRefStateBroken   = sx.MakeSymbol(NameRefStateBroken)
	SymRefStateHosted   = sx.MakeSymbol(NameRefStateHosted)
	SymRefStateBased    = sx.MakeSymbol(NameRefStateBased)
	SymRefStateQuery    = sx.MakeSymbol(NameRefStateQuery)
	SymRefStateExternal = sx.MakeSymbol(NameRefStateExternal)

	// Symbols for metadata types.
	SymTypeCredential   = sx.MakeSymbol(NameTypeCredential)
	SymTypeEmpty        = sx.MakeSymbol(NameTypeEmpty)
	SymTypeID           = sx.MakeSymbol(NameTypeID)
	SymTypeIDSet        = sx.MakeSymbol(NameTypeIDSet)
	SymTypeNumber       = sx.MakeSymbol(NameTypeNumber)
	SymTypeString       = sx.MakeSymbol(NameTypeString)
	SymTypeTagSet       = sx.MakeSymbol(NameTypeTagSet)
	SymTypeTimestamp    = sx.MakeSymbol(NameTypeTimestamp)
	SymTypeURL          = sx.MakeSymbol(NameTypeURL)
	SymTypeWord         = sx.MakeSymbol(NameTypeWord)
	SymTypeZettelmarkup = sx.MakeSymbol(NameTypeZettelmarkup)
)







|

|
|
|


|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<
<
<
<
<
<
<
<
<
<
<
<
|
<
<
|
|
|
|
<
|
|
|
|
<
<
|
|
|
|
|
|
|
<
<
<
|
|
<
<
|
|
<
|
<
<
|
|
|
|
|
>
|
|
|
|
|
<

<
|
|
<
|
<
<
|
|
<
|
<
|
<
|
<
|
<
<
<
<
<
<
<
<
<
|
|
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|
|
|
|
|
|
|
|
|
|
|

13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51












52


53
54
55
56

57
58
59
60


61
62
63
64
65
66
67



68
69


70
71

72


73
74
75
76
77
78
79
80
81
82
83

84

85
86

87


88
89

90

91

92

93









94
95
96
















































97
98
99
100
101
102
103
104
105
106
107
108

package sz

import "t73f.de/r/sx"

// Various constants for Zettel data. Some of them are technically variables.

var (
	// Symbols for Metanodes
	SymBlock  = sx.MakeSymbol("BLOCK")
	SymInline = sx.MakeSymbol("INLINE")
	SymMeta   = sx.MakeSymbol("META")

	// Symbols for Zettel noMakede types.
	SymBLOB            = sx.MakeSymbol("BLOB")
	SymCell            = sx.MakeSymbol("CELL")
	SymCellCenter      = sx.MakeSymbol("CELL-CENTER")
	SymCellLeft        = sx.MakeSymbol("CELL-LEFT")
	SymCellRight       = sx.MakeSymbol("CELL-RIGHT")
	SymCite            = sx.MakeSymbol("CITE")
	SymDescription     = sx.MakeSymbol("DESCRIPTION")
	SymEmbed           = sx.MakeSymbol("EMBED")
	SymEmbedBLOB       = sx.MakeSymbol("EMBED-BLOB")
	SymEndnote         = sx.MakeSymbol("ENDNOTE")
	SymFormatEmph      = sx.MakeSymbol("FORMAT-EMPH")
	SymFormatDelete    = sx.MakeSymbol("FORMAT-DELETE")
	SymFormatInsert    = sx.MakeSymbol("FORMAT-INSERT")
	SymFormatMark      = sx.MakeSymbol("FORMAT-MARK")
	SymFormatQuote     = sx.MakeSymbol("FORMAT-QUOTE")
	SymFormatSpan      = sx.MakeSymbol("FORMAT-SPAN")
	SymFormatSub       = sx.MakeSymbol("FORMAT-SUB")
	SymFormatSuper     = sx.MakeSymbol("FORMAT-SUPER")
	SymFormatStrong    = sx.MakeSymbol("FORMAT-STRONG")
	SymHard            = sx.MakeSymbol("HARD")
	SymHeading         = sx.MakeSymbol("HEADING")
	SymLinkInvalid     = sx.MakeSymbol("LINK-INVALID")
	SymLinkZettel      = sx.MakeSymbol("LINK-ZETTEL")
	SymLinkSelf        = sx.MakeSymbol("LINK-SELF")
	SymLinkFound       = sx.MakeSymbol("LINK-FOUND")












	SymLinkBroken      = sx.MakeSymbol("LINK-BROKEN")


	SymLinkHosted      = sx.MakeSymbol("LINK-HOSTED")
	SymLinkBased       = sx.MakeSymbol("LINK-BASED")
	SymLinkQuery       = sx.MakeSymbol("LINK-QUERY")
	SymLinkExternal    = sx.MakeSymbol("LINK-EXTERNAL")

	SymListOrdered     = sx.MakeSymbol("ORDERED")
	SymListUnordered   = sx.MakeSymbol("UNORDERED")
	SymListQuote       = sx.MakeSymbol("QUOTATION")
	SymLiteralProg     = sx.MakeSymbol("LITERAL-CODE")


	SymLiteralComment  = sx.MakeSymbol("LITERAL-COMMENT")
	SymLiteralHTML     = sx.MakeSymbol("LITERAL-HTML")
	SymLiteralInput    = sx.MakeSymbol("LITERAL-INPUT")
	SymLiteralMath     = sx.MakeSymbol("LITERAL-MATH")
	SymLiteralOutput   = sx.MakeSymbol("LITERAL-OUTPUT")
	SymLiteralZettel   = sx.MakeSymbol("LITERAL-ZETTEL")
	SymMark            = sx.MakeSymbol("MARK")



	SymPara            = sx.MakeSymbol("PARA")
	SymRegionBlock     = sx.MakeSymbol("REGION-BLOCK")


	SymRegionQuote     = sx.MakeSymbol("REGION-QUOTE")
	SymRegionVerse     = sx.MakeSymbol("REGION-VERSE")

	SymSoft            = sx.MakeSymbol("SOFT")


	SymTable           = sx.MakeSymbol("TABLE")
	SymText            = sx.MakeSymbol("TEXT")
	SymThematic        = sx.MakeSymbol("THEMATIC")
	SymTransclude      = sx.MakeSymbol("TRANSCLUDE")
	SymUnknown         = sx.MakeSymbol("UNKNOWN-NODE")
	SymVerbatimComment = sx.MakeSymbol("VERBATIM-COMMENT")
	SymVerbatimEval    = sx.MakeSymbol("VERBATIM-EVAL")
	SymVerbatimHTML    = sx.MakeSymbol("VERBATIM-HTML")
	SymVerbatimMath    = sx.MakeSymbol("VERBATIM-MATH")
	SymVerbatimProg    = sx.MakeSymbol("VERBATIM-CODE")
	SymVerbatimZettel  = sx.MakeSymbol("VERBATIM-ZETTEL")



	// Constant symbols for reference states.
	SymRefStateInvalid  = sx.MakeSymbol("INVALID")

	SymRefStateZettel   = sx.MakeSymbol("ZETTEL")


	SymRefStateSelf     = sx.MakeSymbol("SELF")
	SymRefStateFound    = sx.MakeSymbol("FOUND")

	SymRefStateBroken   = sx.MakeSymbol("BROKEN")

	SymRefStateHosted   = sx.MakeSymbol("HOSTED")

	SymRefStateBased    = sx.MakeSymbol("BASED")

	SymRefStateQuery    = sx.MakeSymbol("QUERY")









	SymRefStateExternal = sx.MakeSymbol("EXTERNAL")

	// Symbols for metadata types.
















































	SymTypeCredential   = sx.MakeSymbol("CREDENTIAL")
	SymTypeEmpty        = sx.MakeSymbol("EMPTY-STRING")
	SymTypeID           = sx.MakeSymbol("ZID")
	SymTypeIDSet        = sx.MakeSymbol("ZID-SET")
	SymTypeNumber       = sx.MakeSymbol("NUMBER")
	SymTypeString       = sx.MakeSymbol("STRING")
	SymTypeTagSet       = sx.MakeSymbol("TAG-SET")
	SymTypeTimestamp    = sx.MakeSymbol("TIMESTAMP")
	SymTypeURL          = sx.MakeSymbol("URL")
	SymTypeWord         = sx.MakeSymbol("WORD")
	SymTypeZettelmarkup = sx.MakeSymbol("ZETTELMARKUP")
)

Changes to sz/sz.go.

129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157

// MapRefStateToLinkEmbed maps a reference state symbol to a link symbol or to
// an embed symbol, depending on 'forLink'.
func MapRefStateToLinkEmbed(symRefState *sx.Symbol, forLink bool) *sx.Symbol {
	if !forLink {
		return SymEmbed
	}
	if sym, found := mapRefStateLink[symRefState.GetValue()]; found {
		return sym
	}
	return SymLinkInvalid
}

var mapRefStateLink = map[string]*sx.Symbol{
	NameRefStateInvalid:  SymLinkInvalid,
	NameRefStateZettel:   SymLinkZettel,
	NameRefStateSelf:     SymLinkSelf,
	NameRefStateFound:    SymLinkFound,
	NameRefStateBroken:   SymLinkBroken,
	NameRefStateHosted:   SymLinkHosted,
	NameRefStateBased:    SymLinkBased,
	NameRefStateQuery:    SymLinkQuery,
	NameRefStateExternal: SymLinkExternal,
}

// IsBreakSym return true if the object is either a soft or a hard break symbol.
func IsBreakSym(obj sx.Object) bool {
	return SymSoft.IsEqual(obj) || SymHard.IsEqual(obj)
}







|





|
|
|
|
|
|
|
|
|
|






129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157

// MapRefStateToLinkEmbed maps a reference state symbol to a link symbol or to
// an embed symbol, depending on 'forLink'.
func MapRefStateToLinkEmbed(symRefState *sx.Symbol, forLink bool) *sx.Symbol {
	if !forLink {
		return SymEmbed
	}
	if sym, found := mapRefStateLink[symRefState]; found {
		return sym
	}
	return SymLinkInvalid
}

var mapRefStateLink = map[*sx.Symbol]*sx.Symbol{
	SymRefStateInvalid:  SymLinkInvalid,
	SymRefStateZettel:   SymLinkZettel,
	SymRefStateSelf:     SymLinkSelf,
	SymRefStateFound:    SymLinkFound,
	SymRefStateBroken:   SymLinkBroken,
	SymRefStateHosted:   SymLinkHosted,
	SymRefStateBased:    SymLinkBased,
	SymRefStateQuery:    SymLinkQuery,
	SymRefStateExternal: SymLinkExternal,
}

// IsBreakSym return true if the object is either a soft or a hard break symbol.
func IsBreakSym(obj sx.Object) bool {
	return SymSoft.IsEqual(obj) || SymHard.IsEqual(obj)
}