summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/gen/Languages.txt118
-rw-r--r--doc/gen/Topics.txt90
-rw-r--r--include/common/geom.h12
-rw-r--r--include/common/matrix.h6
-rw-r--r--makefile16
5 files changed, 231 insertions, 11 deletions
diff --git a/doc/gen/Languages.txt b/doc/gen/Languages.txt
new file mode 100644
index 0000000..9d0df2d
--- /dev/null
+++ b/doc/gen/Languages.txt
@@ -0,0 +1,118 @@
1Format: 1.51
2
3# This is the Natural Docs languages file for this project. If you change
4# anything here, it will apply to THIS PROJECT ONLY. If you'd like to change
5# something for all your projects, edit the Languages.txt in Natural Docs'
6# Config directory instead.
7
8
9# You can prevent certain file extensions from being scanned like this:
10# Ignore Extensions: [extension] [extension] ...
11
12
13#-------------------------------------------------------------------------------
14# SYNTAX:
15#
16# Unlike other Natural Docs configuration files, in this file all comments
17# MUST be alone on a line. Some languages deal with the # character, so you
18# cannot put comments on the same line as content.
19#
20# Also, all lists are separated with spaces, not commas, again because some
21# languages may need to use them.
22#
23# Language: [name]
24# Alter Language: [name]
25# Defines a new language or alters an existing one. Its name can use any
26# characters. If any of the properties below have an add/replace form, you
27# must use that when using Alter Language.
28#
29# The language Shebang Script is special. It's entry is only used for
30# extensions, and files with those extensions have their shebang (#!) lines
31# read to determine the real language of the file. Extensionless files are
32# always treated this way.
33#
34# The language Text File is also special. It's treated as one big comment
35# so you can put Natural Docs content in them without special symbols. Also,
36# if you don't specify a package separator, ignored prefixes, or enum value
37# behavior, it will copy those settings from the language that is used most
38# in the source tree.
39#
40# Extensions: [extension] [extension] ...
41# [Add/Replace] Extensions: [extension] [extension] ...
42# Defines the file extensions of the language's source files. You can
43# redefine extensions found in the main languages file. You can use * to
44# mean any undefined extension.
45#
46# Shebang Strings: [string] [string] ...
47# [Add/Replace] Shebang Strings: [string] [string] ...
48# Defines a list of strings that can appear in the shebang (#!) line to
49# designate that it's part of the language. You can redefine strings found
50# in the main languages file.
51#
52# Ignore Prefixes in Index: [prefix] [prefix] ...
53# [Add/Replace] Ignored Prefixes in Index: [prefix] [prefix] ...
54#
55# Ignore [Topic Type] Prefixes in Index: [prefix] [prefix] ...
56# [Add/Replace] Ignored [Topic Type] Prefixes in Index: [prefix] [prefix] ...
57# Specifies prefixes that should be ignored when sorting symbols in an
58# index. Can be specified in general or for a specific topic type.
59#
60#------------------------------------------------------------------------------
61# For basic language support only:
62#
63# Line Comments: [symbol] [symbol] ...
64# Defines a space-separated list of symbols that are used for line comments,
65# if any.
66#
67# Block Comments: [opening sym] [closing sym] [opening sym] [closing sym] ...
68# Defines a space-separated list of symbol pairs that are used for block
69# comments, if any.
70#
71# Package Separator: [symbol]
72# Defines the default package separator symbol. The default is a dot.
73#
74# [Topic Type] Prototype Enders: [symbol] [symbol] ...
75# When defined, Natural Docs will attempt to get a prototype from the code
76# immediately following the topic type. It stops when it reaches one of
77# these symbols. Use \n for line breaks.
78#
79# Line Extender: [symbol]
80# Defines the symbol that allows a prototype to span multiple lines if
81# normally a line break would end it.
82#
83# Enum Values: [global|under type|under parent]
84# Defines how enum values are referenced. The default is global.
85# global - Values are always global, referenced as 'value'.
86# under type - Values are under the enum type, referenced as
87# 'package.enum.value'.
88# under parent - Values are under the enum's parent, referenced as
89# 'package.value'.
90#
91# Perl Package: [perl package]
92# Specifies the Perl package used to fine-tune the language behavior in ways
93# too complex to do in this file.
94#
95#------------------------------------------------------------------------------
96# For full language support only:
97#
98# Full Language Support: [perl package]
99# Specifies the Perl package that has the parsing routines necessary for full
100# language support.
101#
102#-------------------------------------------------------------------------------
103
104# The following languages are defined in the main file, if you'd like to alter
105# them:
106#
107# Text File, Shebang Script, C/C++, C#, Java, JavaScript, Perl, Python,
108# PHP, SQL, Visual Basic, Pascal, Assembly, Ada, Tcl, Ruby, Makefile,
109# ActionScript, ColdFusion, R, Fortran
110
111# If you add a language that you think would be useful to other developers
112# and should be included in Natural Docs by default, please e-mail it to
113# languages [at] naturaldocs [dot] org.
114
115
116Alter Language: C/C++
117
118 Struct Prototype Ender: ;
diff --git a/doc/gen/Topics.txt b/doc/gen/Topics.txt
new file mode 100644
index 0000000..c825869
--- /dev/null
+++ b/doc/gen/Topics.txt
@@ -0,0 +1,90 @@
1Format: 1.51
2
3# This is the Natural Docs topics file for this project. If you change anything
4# here, it will apply to THIS PROJECT ONLY. If you'd like to change something
5# for all your projects, edit the Topics.txt in Natural Docs' Config directory
6# instead.
7
8
9# If you'd like to prevent keywords from being recognized by Natural Docs, you
10# can do it like this:
11# Ignore Keywords: [keyword], [keyword], ...
12#
13# Or you can use the list syntax like how they are defined:
14# Ignore Keywords:
15# [keyword]
16# [keyword], [plural keyword]
17# ...
18
19
20#-------------------------------------------------------------------------------
21# SYNTAX:
22#
23# Topic Type: [name]
24# Alter Topic Type: [name]
25# Creates a new topic type or alters one from the main file. Each type gets
26# its own index and behavior settings. Its name can have letters, numbers,
27# spaces, and these charaters: - / . '
28#
29# Plural: [name]
30# Sets the plural name of the topic type, if different.
31#
32# Keywords:
33# [keyword]
34# [keyword], [plural keyword]
35# ...
36# Defines or adds to the list of keywords for the topic type. They may only
37# contain letters, numbers, and spaces and are not case sensitive. Plural
38# keywords are used for list topics. You can redefine keywords found in the
39# main topics file.
40#
41# Index: [yes|no]
42# Whether the topics get their own index. Defaults to yes. Everything is
43# included in the general index regardless of this setting.
44#
45# Scope: [normal|start|end|always global]
46# How the topics affects scope. Defaults to normal.
47# normal - Topics stay within the current scope.
48# start - Topics start a new scope for all the topics beneath it,
49# like class topics.
50# end - Topics reset the scope back to global for all the topics
51# beneath it.
52# always global - Topics are defined as global, but do not change the scope
53# for any other topics.
54#
55# Class Hierarchy: [yes|no]
56# Whether the topics are part of the class hierarchy. Defaults to no.
57#
58# Page Title If First: [yes|no]
59# Whether the topic's title becomes the page title if it's the first one in
60# a file. Defaults to no.
61#
62# Break Lists: [yes|no]
63# Whether list topics should be broken into individual topics in the output.
64# Defaults to no.
65#
66# Can Group With: [type], [type], ...
67# Defines a list of topic types that this one can possibly be grouped with.
68# Defaults to none.
69#-------------------------------------------------------------------------------
70
71# The following topics are defined in the main file, if you'd like to alter
72# their behavior or add keywords:
73#
74# Generic, Class, Interface, Section, File, Group, Function, Variable,
75# Property, Type, Constant, Enumeration, Event, Delegate, Macro,
76# Database, Database Table, Database View, Database Index, Database
77# Cursor, Database Trigger, Cookie, Build Target
78
79# If you add something that you think would be useful to other developers
80# and should be included in Natural Docs by default, please e-mail it to
81# topics [at] naturaldocs [dot] org.
82
83
84Topic Type: Struct
85
86 Plural: Structs
87 Class Hierarchy: Yes
88
89 Keywords:
90 struct
diff --git a/include/common/geom.h b/include/common/geom.h
index 4445998..a843c76 100644
--- a/include/common/geom.h
+++ b/include/common/geom.h
@@ -15,16 +15,24 @@
15typedef int32_t IntVector; 15typedef int32_t IntVector;
16 16
17/** 17/**
18 * Type: CartesianVector 18 * Struct: CartesianVector
19 * An abstract 2-D vector in cartesian coordinates. 19 * An abstract 2-D vector in cartesian coordinates.
20 *
21 * Fields:
22 * x - the horizontal component
23 * y - the vertical component
20 */ 24 */
21typedef struct { 25typedef struct {
22 IntVector x, y; 26 IntVector x, y;
23} CartesianVector; 27} CartesianVector;
24 28
25/** 29/**
26 * Type: CartesianMapping 30 * Struct: CartesianMapping
27 * A tuple of cartesian vectors representing a mapping. 31 * A tuple of cartesian vectors representing a mapping.
32 *
33 * Fields:
34 * origin - preimage vector
35 * target - image vector
28 */ 36 */
29typedef struct { 37typedef struct {