diff options
| author | Kyle Gunger <kgunger12@gmail.com> | 2021-11-01 02:22:29 -0400 | 
|---|---|---|
| committer | Kyle Gunger <kgunger12@gmail.com> | 2021-11-01 02:22:29 -0400 | 
| commit | 705d62fdf1752e94df2071fdea16b41a124a15e6 (patch) | |
| tree | 62b0920cc4b70d2f3d2f9504a796abdb89a41e58 | |
| parent | 25e716cd730992baae64d7906b1d7eb5119f9d19 (diff) | |
[EXEC] Initialize
+ Some initial files for use in the interpreter
| -rw-r--r-- | src/texec/libtnsl.go | 23 | ||||
| -rw-r--r-- | src/texec/world.go | 50 | ||||
| -rw-r--r-- | src/texec/worldbuilder.go | 24 | 
3 files changed, 97 insertions, 0 deletions
| diff --git a/src/texec/libtnsl.go b/src/texec/libtnsl.go new file mode 100644 index 0000000..c77bd25 --- /dev/null +++ b/src/texec/libtnsl.go @@ -0,0 +1,23 @@ +/* +	Copyright 2020 Kyle Gunger + +	Licensed under the Apache License, Version 2.0 (the "License"); +	you may not use this file except in compliance with the License. +	You may obtain a copy of the License at + +		http://www.apache.org/licenses/LICENSE-2.0 + +	Unless required by applicable law or agreed to in writing, software +	distributed under the License is distributed on an "AS IS" BASIS, +	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +	See the License for the specific language governing permissions and +	limitations under the License. +*/ + +package texec + +/** +	This file represents the 'tnsl' module and a key few functions. +	These functions should be all that is needed to use the compiler, and no more. +*/ + diff --git a/src/texec/world.go b/src/texec/world.go new file mode 100644 index 0000000..7f51c13 --- /dev/null +++ b/src/texec/world.go @@ -0,0 +1,50 @@ +/* +	Copyright 2020 Kyle Gunger + +	Licensed under the Apache License, Version 2.0 (the "License"); +	you may not use this file except in compliance with the License. +	You may obtain a copy of the License at + +		http://www.apache.org/licenses/LICENSE-2.0 + +	Unless required by applicable law or agreed to in writing, software +	distributed under the License is distributed on an "AS IS" BASIS, +	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +	See the License for the specific language governing permissions and +	limitations under the License. +*/ + +package texec + +// TVaraiable represents a single variable in the program +type TVariable struct { +	Type string +	Data interface{} +} + +// TPath represents a pointer to the current module and file +// that the thread is working in. +type TPath struct { +	module []string, +	file   string +} + +// TContext represents a single thread. +type TContext struct { +	CallStack []Node, +	VarMap    []map[string]TVariable +} + +// TModule represents a collection of files and sub-modules in a program +type Module struct { +	Files   []Node, +	Globals []map[string]TVariable +	Sub     []TModule +} + +// TWorld represents the full program +type TWorld struct { +	Modules  []TModule, +	MainPath TPath, +	MainFunc Node +}
\ No newline at end of file diff --git a/src/texec/worldbuilder.go b/src/texec/worldbuilder.go new file mode 100644 index 0000000..37f05db --- /dev/null +++ b/src/texec/worldbuilder.go @@ -0,0 +1,24 @@ +/* +	Copyright 2020 Kyle Gunger + +	Licensed under the Apache License, Version 2.0 (the "License"); +	you may not use this file except in compliance with the License. +	You may obtain a copy of the License at + +		http://www.apache.org/licenses/LICENSE-2.0 + +	Unless required by applicable law or agreed to in writing, software +	distributed under the License is distributed on an "AS IS" BASIS, +	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +	See the License for the specific language governing permissions and +	limitations under the License. +*/ + +package texec + +import "tparse" + +/** +	worldbuilder.go - take in a file name and construct a TWorld based on it. +*/ + |