From 8ecb783cf829596a031aad0d4ad5669520bf8295 Mon Sep 17 00:00:00 2001 From: flashwave Date: Mon, 20 Sep 2021 03:05:36 +0200 Subject: [PATCH] importe --- .vs/GASi/v14/.suo | Bin 0 -> 56320 bytes .vs/GASi/v15/.suo | Bin 0 -> 52224 bytes .vs/GASi/v15/Server/sqlite3/db.lock | 0 .vs/GASi/v15/Server/sqlite3/storage.ide | Bin 0 -> 466944 bytes GASi.sln | 22 ++ GASi/App.config | 6 + GASi/GASi.csproj | 71 +++++ GASi/Lexer.cs | 213 +++++++++++++++ GASi/Parser.cs | 246 ++++++++++++++++++ GASi/Properties/AssemblyInfo.cs | 36 +++ GASi/Stdlib.cs | 21 ++ GASi/SymbolTable.cs | 77 ++++++ GASi/Transpiler.cs | 35 +++ GASi/bin/Debug/GASi.exe | Bin 0 -> 19968 bytes GASi/bin/Debug/GASi.exe.config | 6 + GASi/bin/Debug/GASi.pdb | Bin 0 -> 46592 bytes GASi/bin/Debug/GASi.vshost.exe | Bin 0 -> 22696 bytes GASi/bin/Debug/GASi.vshost.exe.config | 6 + GASi/bin/Debug/GASi.vshost.exe.manifest | 11 + GASi/bin/Debug/math.glib | 162 ++++++++++++ GASi/bin/Debug/test.gi | 23 ++ ...gnTimeResolveAssemblyReferencesInput.cache | Bin 0 -> 6924 bytes .../Debug/GASi.csproj.CoreCompileInputs.cache | 1 + .../Debug/GASi.csproj.FileListAbsolute.txt | 13 + .../GASi.csprojResolveAssemblyReference.cache | Bin 0 -> 9846 bytes GASi/obj/Debug/GASi.exe | Bin 0 -> 19968 bytes GASi/obj/Debug/GASi.pdb | Bin 0 -> 46592 bytes ...le_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs | 0 ...le_5937a670-0e60-4077-877b-f7221da3dda1.cs | 0 ...le_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs | 0 GASi/stdlib/math.glib | 162 ++++++++++++ 31 files changed, 1111 insertions(+) create mode 100644 .vs/GASi/v14/.suo create mode 100644 .vs/GASi/v15/.suo create mode 100644 .vs/GASi/v15/Server/sqlite3/db.lock create mode 100644 .vs/GASi/v15/Server/sqlite3/storage.ide create mode 100644 GASi.sln create mode 100644 GASi/App.config create mode 100644 GASi/GASi.csproj create mode 100644 GASi/Lexer.cs create mode 100644 GASi/Parser.cs create mode 100644 GASi/Properties/AssemblyInfo.cs create mode 100644 GASi/Stdlib.cs create mode 100644 GASi/SymbolTable.cs create mode 100644 GASi/Transpiler.cs create mode 100644 GASi/bin/Debug/GASi.exe create mode 100644 GASi/bin/Debug/GASi.exe.config create mode 100644 GASi/bin/Debug/GASi.pdb create mode 100644 GASi/bin/Debug/GASi.vshost.exe create mode 100644 GASi/bin/Debug/GASi.vshost.exe.config create mode 100644 GASi/bin/Debug/GASi.vshost.exe.manifest create mode 100644 GASi/bin/Debug/math.glib create mode 100644 GASi/bin/Debug/test.gi create mode 100644 GASi/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache create mode 100644 GASi/obj/Debug/GASi.csproj.CoreCompileInputs.cache create mode 100644 GASi/obj/Debug/GASi.csproj.FileListAbsolute.txt create mode 100644 GASi/obj/Debug/GASi.csprojResolveAssemblyReference.cache create mode 100644 GASi/obj/Debug/GASi.exe create mode 100644 GASi/obj/Debug/GASi.pdb create mode 100644 GASi/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs create mode 100644 GASi/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs create mode 100644 GASi/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs create mode 100644 GASi/stdlib/math.glib diff --git a/.vs/GASi/v14/.suo b/.vs/GASi/v14/.suo new file mode 100644 index 0000000000000000000000000000000000000000..bd8a7e786150e207d3760a9a337a78387f49d7a8 GIT binary patch literal 56320 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 literal 0 HcmV?d00001 diff --git a/.vs/GASi/v15/.suo b/.vs/GASi/v15/.suo new file mode 100644 index 0000000000000000000000000000000000000000..f186f9bd620ec69571fdf58a79cced556c148ae1 GIT binary patch literal 52224 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%0A{VwP`Bu1FleXakc43$I*0 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 + + + + + \ No newline at end of file diff --git a/GASi/GASi.csproj b/GASi/GASi.csproj new file mode 100644 index 0000000..c2d77c4 --- /dev/null +++ b/GASi/GASi.csproj @@ -0,0 +1,71 @@ + + + + + Debug + AnyCPU + {E0A2B15D-FBA2-43CB-9E13-843C6143E0F8} + Exe + Properties + GASi + GASi + v4.5.2 + 512 + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + COPY "$(ProjectDir)stdlib\" "$(TargetDir)" + + + \ No newline at end of file diff --git a/GASi/Lexer.cs b/GASi/Lexer.cs new file mode 100644 index 0000000..d34a5b2 --- /dev/null +++ b/GASi/Lexer.cs @@ -0,0 +1,213 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace GASi { + class Lexer { + private enum kTokenState { + UNSURE, ALPHA, NUMERIC, OPERATOR, PREPROCESSOR, RAW, STRING + } + + private static string[] Scopes = { "global", "static", "local" }; + private static string[] Types = { "string", "date", "bool", "float", "int", "void" }; + private static string[] Controls = { "if", "else", "elseif", + "switch", "case", "default", + "for", "while" }; + private static string[] Keywords = { "return", "ref", "break" }; + private static string[] Operators = { "+", "-", "*", "/", "%", + "==", "!=", ">", ">=", "<", "<=", "&&", "||", + "&", "|", "^", "~", + "++", "--" }; + private static string[] Assigners = { "=", "+=", "-=", "*=", "/=" }; + + private static string Significants = null; + + private static char Peek(int column, string line) { + return (column + 1 >= line.Length) ? '\0' : line[column + 1]; + } + + private static char Rewind(int column, string line) { + return (column - 1 < 0) ? '\0' : line[column - 1]; + } + + public static IEnumerable Interpret(string[] rawProgramLines) { + List tokenList = new List(); + Token current = new Token(); + kTokenState state = kTokenState.UNSURE; + var rawStartLine = -0xFF; + + for(var line = 0; line < rawProgramLines.Length; ++line) { + var rawProgramLine = rawProgramLines[line]; + bool firstCharFound = false; + var rawStartCol = -0xFF; + + for(var column = 0; column < rawProgramLine.Length; ++column) { + var glyph = rawProgramLine[column]; + var curWord = current.Value; + var tmpWord = current.Value + glyph; + bool rerunGlyph = false; + + if(state == kTokenState.UNSURE) { + // ignore tabs and spaces when nothing is being interpreted yet + if(glyph == 0x20 || glyph == 0x09) + continue; + + if(glyph == '/' && Peek(column, rawProgramLine) == '/') + break; + else if(glyph == '#' && !firstCharFound) + state = kTokenState.PREPROCESSOR; + else if(glyph == ':' && !firstCharFound && Peek(column, rawProgramLine) == ':') { + state = kTokenState.RAW; + rawStartCol = column; + rawStartLine = line; + } else if(glyph == '"') + state = kTokenState.STRING; + else if(IsAlpha(glyph)) + state = kTokenState.ALPHA; + else if(IsNumeric(glyph)) + state = kTokenState.NUMERIC; + else if(IsSignificant(glyph)) + state = kTokenState.OPERATOR; + else + throw Transpiler.Exception("Unexpected glyph " + glyph, line, column); + + firstCharFound = true; + } + + switch(state) { + case kTokenState.RAW: + if(glyph == ':' && Rewind(column, rawProgramLine) == ':' && rawStartCol != column - 1) + current.Type = Token.kType.RAW; + else if(column == 0 && line != rawStartLine) + current.Value += '\n'; + break; + case kTokenState.ALPHA: + if(!IsAlpha(glyph) && !IsNumeric(glyph)) { + if(Scopes.Contains(curWord.Trim())) + current.Type = Token.kType.SCOPE; + else if(Types.Contains(curWord.Trim())) + current.Type = Token.kType.TYPE; + else if(Controls.Contains(curWord.Trim())) + current.Type = Token.kType.CONTROL; + else if(Keywords.Contains(curWord.Trim())) + current.Type = Token.kType.KEYWORD; + else + current.Type = Token.kType.IDENTIFIER; + + rerunGlyph = true; + } + break; + case kTokenState.NUMERIC: + if(!IsNumeric(glyph) && !(glyph == '.' && !current.Value.Contains('.'))) { + current.Type = Token.kType.NUMBER; + rerunGlyph = true; + } + break; + case kTokenState.PREPROCESSOR: + if(!IsAlpha(glyph) && !(glyph == '#' && curWord == "")) { + current.Type = Token.kType.PREPROC; + rerunGlyph = true; + } + break; + case kTokenState.OPERATOR: + if("[]".Contains(glyph)) + current.Type = glyph == '[' ? Token.kType.LBRACKET : Token.kType.RBRACKET; + else if("()".Contains(glyph)) + current.Type = glyph == '(' ? Token.kType.LPAREN : Token.kType.RPAREN; + else if("{}".Contains(glyph)) + current.Type = glyph == '{' ? Token.kType.LBRACE : Token.kType.RBRACE; + else { + switch(glyph) { + case '.': + current.Type = Token.kType.PERIOD; + break; + case ',': + current.Type = Token.kType.COMMA; + break; + case ';': + current.Type = Token.kType.SEMICOL; + break; + default: + if(Operators.Contains(curWord) && !Operators.Contains(tmpWord) && !Assigners.Contains(tmpWord)) { + current.Type = Token.kType.OPERATOR; + rerunGlyph = true; + } else if(Assigners.Contains(curWord) && !Assigners.Contains(tmpWord) && !Operators.Contains(tmpWord)) { + current.Type = Token.kType.ASSIGNER; + rerunGlyph = true; + } + break; + } + } + break; + case kTokenState.STRING: + // TODO determine if you can escape double quotes in gas using \" + if(curWord != "") { + if((glyph == '"' && !curWord.EndsWith("\\")) || column == rawProgramLine.Length - 1) + current.Type = Token.kType.STRING; + } + break; + } + + if(!rerunGlyph) + current.Value += glyph; + else + --column; + + if(current.Type != Token.kType.UNDECIDED) { + current.Value = current.Value.Trim(); + tokenList.Add(current); + current = new Token(); + state = kTokenState.UNSURE; + } + } + } + + return tokenList; + } + + private static bool IsAlpha(char glyph) { + return (glyph >= 0x41 && glyph <= 0x5A) || (glyph >= 0x61 && glyph <= 0x7A); + } + + private static bool IsNumeric(char glyph) { + return glyph >= 0x30 && glyph <= 0x39; + } + + private static bool IsSignificant(char glyph) { + AssembleSignificantCharactersTable(); + return Significants.Contains(glyph); + } + + private static void AssembleSignificantCharactersTable() { + if(Significants != null) + return; + + Significants = "[]{}(),.;"; + List mergedList = Operators.ToList(); + mergedList.AddRange(Assigners.ToList()); + foreach(var op in mergedList) { + foreach(var glyph in op) { + if(!Significants.Contains(glyph)) + Significants += glyph; + } + } + } + + public class Token { + public kType Type { get; set; } = kType.UNDECIDED; + public string Value { get; set; } = ""; + + public enum kType { + UNDECIDED, + PREPROC, RAW, + SCOPE, TYPE, IDENTIFIER, + OPERATOR, ASSIGNER, CONTROL, KEYWORD, + LPAREN, RPAREN, LBRACKET, RBRACKET, LBRACE, RBRACE, + PERIOD, COMMA, SEMICOL, + NUMBER, STRING, BOOL + } + } + } +} diff --git a/GASi/Parser.cs b/GASi/Parser.cs new file mode 100644 index 0000000..92f11d7 --- /dev/null +++ b/GASi/Parser.cs @@ -0,0 +1,246 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using static GASi.Lexer; + +namespace GASi { + class Parser { + public enum kControl { + FUNC, IF, FOR, WHILE, SWITCH, CASE + } + + private ScopeTable Globals = new ScopeTable(); + private MethodTable Methods = new MethodTable(); + private Stack ControlStack = new Stack(); + + private MethodTable.Method CurrentMethod = null; + private List Tokens; + private int TokenIterator; + + private static Dictionary> Patterns = new Dictionary>() { + { "pre_inc", new List { + new Pattern(Token.kType.PREPROC, "#include"), + new Pattern(Token.kType.STRING) + } }, + + { "fndecl", new List { + new Pattern(Token.kType.TYPE), + new Pattern(Token.kType.IDENTIFIER), + new Pattern(Token.kType.LPAREN) + } }, + + { "fnparams", new List { + new Pattern(Token.kType.TYPE), + new Pattern(Token.kType.IDENTIFIER), + new Pattern(Token.kType.COMMA), + } }, + + { "ctrlstart", new List { + new Pattern(Token.kType.RPAREN), + new Pattern(Token.kType.LBRACE) + } } + }; + + public Parser(List Tokens) { + this.Tokens = Tokens; + } + + public List Parse() { + var ret = new List(); + + TokenIterator = 0; + while(TokenIterator < Tokens.Count) { + var expr = new Expression(); + var token = Tokens[TokenIterator]; + + if(CurrentMethod == null) { // if we're in the global scope + switch(token.Type) { + case Token.kType.PREPROC: // preprocessor definition + // TODO add more preproc defs + if(!CheckPattern(Patterns["pre_inc"])) + Transpiler.Exception("Invalid preprocessor directive '" + token.Value.Substring(1) + "'", 0, 0); + + expr.Tokens = Iterate(2); + expr.Type = Expression.kType.PREPROC; + break; + case Token.kType.TYPE: // function declaration + expr = ParseFunctionDeclaration(); + break; + default: + Transpiler.Exception("Unexpected token '" + token.Value + "' of type '" + token.Type.ToString() + "' in global scope", 0, 0); + break; + } + } else { // if we're in a local scope + + } + + ret.Add(expr); + } + + return null; + } + + public Expression ParseFunctionDeclaration() { + var expr = new Expression(); + + if(CheckPattern(Patterns["fndecl"])) { + expr.Tokens = Iterate(Patterns["fndecl"].Count); + var functionName = expr.Tokens[1].Value; + + expr.ControlName = functionName; + expr.ControlType = kControl.FUNC; + expr.Type = Expression.kType.CTRLSTART; + + var method = new MethodTable.Method() { + Name = functionName, + ReturnType = Conversion.StringToType(expr.Tokens[0].Value) + }; + + int argTokenCount; + if((argTokenCount = CheckPatternLoop(Patterns["fnparams"], Token.kType.RPAREN)) == -1) + Transpiler.Exception("Invalid token found in argument list of function '"+ functionName +"'", 0, 0); + + // Now that we know that it follows the pattern, we must check for early truncation. + // Note the standard form for an argument list: + // TOKENS: [TYPE IDENTIFIER COMMA]*(n-1) + [TYPE IDENTIFIER] + // Where n is the function's number of arguments. + // The last argument should not be followed by a comma, nor should be incomplete + // (that is to say, only a type identifier by itself), so we can check the + // length of the argument list passed and treat it as such: + // TOKEN COUNT = 3*(n-1) + 2 + // This follows from the token formula state above. + // If you add one to this token count, you end up with this: + // TOKEN COUNT = 3*(n-1) + 3 = 3n - 3 + 3 = 3n + // Which can then be confirmed using the remainder of dividing the argument list + // by three and determining if it is zero. This will only be true for a well- + // formed argument list. + if((argTokenCount + 1) % 3 != 0) + Transpiler.Exception("Malformed final argument in argument list of function '"+ functionName +"'", 0, 0); + + var args = Iterate(argTokenCount); + var arg = new MethodTable.Method.Argument(); + for(int i = 0; i < args.Count; ++i) { + var token = args[i]; + + switch(i%3) { + case 0: + arg = new MethodTable.Method.Argument { + Type = Conversion.StringToType(token.Value) + }; + + if(arg.Type == kType.VOID) + Transpiler.Exception("Function '" + functionName + "' cannot have arguments with a void type", 0, 0); + break; + case 1: + arg.Name = token.Value; + method.Arguments.Add(arg); + break; + } + } + + expr.Tokens.AddRange(args); + if(!CheckPattern(Patterns["ctrlstart"])) + Transpiler.Exception("Malformed tokens after argument list in function declaration '"+ functionName +"'", 0, 0); + + expr.Tokens.AddRange(Iterate(Patterns["ctrlstart"].Count)); + + Methods.AddMethod(method); + } else + Transpiler.Exception("Invalid token found during function declaration", 0, 0); + + return expr; + } + + private bool CheckPattern(List pattern) { + for(var i = TokenIterator; i < TokenIterator + pattern.Count; ++i) { + if(i >= Tokens.Count) + Transpiler.Exception("Unexpected EOF when checking for token pattern", 0, 0); + + var j = i - TokenIterator; + if(Tokens[i].Type != pattern[j].Type || (pattern[j].Value != null && Tokens[i].Value != pattern[j].Value)) + return false; + } + + return true; + } + + private int CheckPatternLoop(List pattern, Token.kType terminator) { + var i = TokenIterator; + for(; ; ++i) { + if(i >= Tokens.Count) + Transpiler.Exception("Unexpected EOF when checking for repeated token pattern", 0, 0); + + var j = (i - TokenIterator) % pattern.Count; + if(Tokens[i].Type == terminator) + break; + if(Tokens[i].Type != pattern[j].Type || (pattern[j].Value != null && Tokens[i].Value != pattern[j].Value)) + return -1; + } + + return i - TokenIterator; + } + + private List Extract(int length) { + if(TokenIterator + length > Tokens.Count) + Transpiler.Exception("Attempted to read expected tokens past EOF", 0, 0); + + return Tokens.GetRange(TokenIterator, length); + } + + private void Skip(int count) { + TokenIterator += count; + } + + private List Iterate(int count) { + var tmp = Extract(count); + Skip(count); + return tmp; + } + + private int CountUntilNext(Token.kType type, Token.kType? nester = null, bool allowNesting = true) { + int depth = 1, count = 0; + for(; depth > 0; ++count) { + if(TokenIterator + count >= Tokens.Count) + Transpiler.Exception("Closing token '"+ type.ToString() +"' for appropriate scope not found", 0, 0); + + var token = Tokens[TokenIterator + count]; + + if(token.Type == type) + --depth; + else if(token.Type == nester) { + if(allowNesting) + ++depth; + else + Transpiler.Exception("Invalid token of type '" + token.Type + "' found when nesting is not allowed", 0, 0); + } + + } + return count + 1; + } + + public class Pattern { + public Token.kType Type { get; set; } + public string Value { get; set; } + + public Pattern(Token.kType type, string value = null) { + Type = type; + Value = value; + } + } + + public class Expression { + public enum kType { + PREPROC, + CTRLSTART, BREAK, CTRLEND, + LVAL, ASSIGN, RVAL + } + + public kType Type { get; set; } + public kControl ControlType { get; set; } + public string ControlName { get; set; } + public List Tokens { get; set; } + } + } +} diff --git a/GASi/Properties/AssemblyInfo.cs b/GASi/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..4b61a5b --- /dev/null +++ b/GASi/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("GASi")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("GASi")] +[assembly: AssemblyCopyright("Copyright © 2017")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("e0a2b15d-fba2-43cb-9e13-843c6143e0f8")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/GASi/Stdlib.cs b/GASi/Stdlib.cs new file mode 100644 index 0000000..9114e17 --- /dev/null +++ b/GASi/Stdlib.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.IO; + +namespace GASi { + static class Stdlib { + private static MethodTable functions; + + public static void Initialize() { + + } + + public class StdMethod : MethodTable.Method { + + public string Translation { get; set; } + } + } +} diff --git a/GASi/SymbolTable.cs b/GASi/SymbolTable.cs new file mode 100644 index 0000000..2168ce6 --- /dev/null +++ b/GASi/SymbolTable.cs @@ -0,0 +1,77 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace GASi { + public enum kType { + STRING, INT, FLOAT, DATE, BOOL, VOID + } + + class Conversion { + public static kType StringToType(string str) { + try { + return (kType)Enum.Parse(typeof(kType), str, true); + } catch { + throw Transpiler.Exception("Could not determine type implied by keyword '"+ str +"'", 0, 0); + } + } + } + + class ScopeTable { + private List Variables = new List(); + + public void AddVariable(Variable var) { + if(!CheckVariableExists(var.Name)) + Variables.Add(var); + else + throw Transpiler.Exception("Variable already exists with name '" + var.Name + "' in this scope", 0, 0); + } + + public bool CheckVariableExists(string name) { + return Variables.FirstOrDefault(x => x.Name == name) != null; + } + + public Variable GetVariable(string name) { + return Variables.FirstOrDefault(x => x.Name == name); + } + + public class Variable { + public string Name { get; set; } + public kType Type { get; set; } + } + } + + class MethodTable { + private List Methods = new List(); + + public void AddMethod(Method method) { + // TODO determine if GAS allows function overloading + if(!CheckMethodExists(method.Name)) + Methods.Add(method); + else + throw Transpiler.Exception("Method already exists with name '" + method.Name + "'", 0, 0); + } + + public bool CheckMethodExists(string name) { + return Methods.FirstOrDefault(x => x.Name == name) != null; + } + + public Method GetMethod(string name) { + return Methods.FirstOrDefault(x => x.Name == name); + } + + public class Method { + public string Name { get; set; } + public kType ReturnType { get; set; } + public List Arguments { get; set; } + public ScopeTable Scope { get; set; } = new ScopeTable(); + + public class Argument { + public string Name { get; set; } + public kType Type { get; set; } + } + } + } +} diff --git a/GASi/Transpiler.cs b/GASi/Transpiler.cs new file mode 100644 index 0000000..6a76a40 --- /dev/null +++ b/GASi/Transpiler.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.IO; + +// TODO: add foreach support at some point +// this will save enormous amounts of time when processing data + +namespace GASi { + class Transpiler { + static void Main(string[] args) { + var test = File.ReadAllLines("test.gi"); + var result = Lexer.Interpret(test); + FancyPrint(result); + + while(true) ; + } + + static void FancyPrint(IEnumerable tokens) { + var longestCount = 0; + foreach(var token in tokens) + longestCount = Math.Max(longestCount, token.Value.Length); + + foreach(var token in tokens) { + Console.WriteLine("{0, 20}{1}", "(" + token.Type.ToString() + ") | ", token.Value); + } + } + + public static Exception Exception(string text, int line, int column) { + return new Exception("ERROR: " + text + " (line: " + (line + 1) + ", column: " + (column + 1) + ")"); + } + } +} diff --git a/GASi/bin/Debug/GASi.exe b/GASi/bin/Debug/GASi.exe new file mode 100644 index 0000000000000000000000000000000000000000..d6fcd4f61c67192e74d98f32bbddc03989886a48 GIT binary patch literal 19968 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 XXF~lA(B1O8>ED_a|2Xh(DFXi+HT5h( literal 0 HcmV?d00001 diff --git a/GASi/bin/Debug/GASi.exe.config b/GASi/bin/Debug/GASi.exe.config new file mode 100644 index 0000000..88fa402 --- /dev/null +++ b/GASi/bin/Debug/GASi.exe.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/GASi/bin/Debug/GASi.pdb b/GASi/bin/Debug/GASi.pdb new file mode 100644 index 0000000000000000000000000000000000000000..f2605d3d85af0874587d40f19654e24405c72754 GIT binary patch literal 46592 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 literal 0 HcmV?d00001 diff --git a/GASi/bin/Debug/GASi.vshost.exe b/GASi/bin/Debug/GASi.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..681ab771eb267aad9397bb2eaf7889c5ac0e15e6 GIT binary patch literal 22696 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 wj{B?PH3nCjG}491+ySfEVd + + + + + \ No newline at end of file diff --git a/GASi/bin/Debug/GASi.vshost.exe.manifest b/GASi/bin/Debug/GASi.vshost.exe.manifest new file mode 100644 index 0000000..061c9ca --- /dev/null +++ b/GASi/bin/Debug/GASi.vshost.exe.manifest @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/GASi/bin/Debug/math.glib b/GASi/bin/Debug/math.glib new file mode 100644 index 0000000..ac9259f --- /dev/null +++ b/GASi/bin/Debug/math.glib @@ -0,0 +1,162 @@ +! gasi stdlib +! math function definitions +! {0}, {1}, {2}, etc. indicate function arguments +! {r} indicates the return value + +float abs float +Function.Instrinsic.Math.Abs({0}, {r}) +*** +float acos float +Function.Instrinsic.Math.Acos({0}, {r}) +*** +float acsc float +Function.Instrinsic.Math.ACoSec({0}, {r}) +*** +float acot float +Function.Intrinsic.Math.ACoTan({0}, {r}) +*** +float asec float +Function.Intrinsic.Math.Asec({0}, {r}) +*** +float asin float +Function.Intrinsic.Math.Asin({0}, {r}) +*** +float atan float +Function.Intrinsic.Math.Atan({0}, {r}) +*** +int upccheck string +Function.Intrinsic.Math.CalculateUPCcheckDigit({0}, {r}) +*** +float tofloat string +Function.Intrinsic.Math.ConvertToFloat({0}, {r}) +*** +int toint string +Function.Intrinsic.Math.ConvertToLong({0}, {r}) +*** +float cos float +Function.Intrinsic.Math.Cos({0}, {r}) +*** +float csc float +Function.Intrinsic.Math.CoSec({0}, {r}) +*** +float cot float +Function.Intrinsic.Math.CoTan({0}, {r}) +*** +string tofraction float +Function.Intrinsic.Math.DecimalToFraction({0}, {r}) +*** +string tofraction float float +Function.Intrinsic.Math.DecimalToFraction({0}, {1}, {r}) +*** +float degrees float +Function.Intrinsic.Math.DegToRad({0}, {r}) +*** +float radians float +Function.Intrinsic.Math.RadToDeg({0}, {r}) +*** +float exp float +Function.Intrinsic.Math.Exp({0}, {r}) +*** +int whole float +Function.Intrinsic.Math.Fix({0}, {r}) +*** +float acosh float +Function.Intrinsic.Math.HACos({0}, {r}) +*** +float acsch float +Function.Intrinsic.Math.HACoSec({0}, {r}) +*** +float acoth float +Function.Intrinsic.Math.HACoTan({0}, {r}) +*** +float asech float +Function.Intrinsic.Math.HASec({0}, {r}) +*** +float asinh float +Function.Intrinsic.Math.HASin({0}, {r}) +*** +float atanh float +Function.Intrinsic.Math.HATan({0}, {r}) +*** +float cosh float +Function.Intrinsic.Math.Hcos({0}, {r}) +*** +float csch float +Function.Intrinsic.Math.HCoSec({0}, {r}) +*** +float coth float +Function.Intrinsic.Math.HCoTan({0}, {r}) +*** +float sech float +Function.Intrinsic.Math.Hsec({0}, {r}) +*** +float sinh float +Function.Intrinsic.Math.Hsin({0}, {r}) +*** +float tanh float +Function.Intrinsic.Math.HTan({0}, {r}) +*** +int idiv float float +Function.Intrinsic.Math.Idiv({0}, {1}, {r}) +*** +float inv float +Function.Intrinsic.Math.Inv({0}, {r}) +*** +bool inrange float float float +Function.Intrinsic.Math.IsInRange({0}, {1}, {2}, {r}) +*** +bool isnum string +Function.Intrinsic.Math.IsNumeric({0}, {r}) +*** +float log float +Function.Intrinsic.Math.Log({0}, {r}) +*** +float logn float int +Function.Intrinsic.Math.LogN({0}, {1}, {r}) +*** +float polarx float float +Function.Intrinsic.Math.PolarToX({0}, {1}, {r}) +*** +float polary float float +Function.Intrinsic.Math.PolarToY({0}, {1}, {r}) +*** +float lendiag float float +Function.Intrinsic.Math.RectToRad({0}, {1}, {r}) +*** +float angdiag float float +Function.Intrinsic.Math.RectToTheta({0}, {1}, {r}) +*** +float rand +Function.Intrinsic.Math.Rnd({r}) +*** +float rand float +Function.Intrinsic.Math.Rnd({0}, {r}) +*** +float rand float float +Function.Intrinsic.Math.Rnd({0}, {1}, {r}) +*** +float round float float +Function.Intrinsic.Math.Round({0}, {1}, 0, {r}) +*** +float huround float float +Function.Intrinsic.Math.Round({0}, {1}, 1, {r}) +*** +float sec float +Function.Intrinsic.Math.Sec({0}, {r}) +*** +int sign float +Function.Intrinsic.Math.Sgn({0}, {r}) +*** +float sin float +Function.Intrinsic.Math.Sin({0}, {r}) +*** +float sqrt float +Function.Intrinsic.Math.Sqr({0}, {r}) +*** +float tan float +Function.Intrinsic.Math.Tan({0}, {r}) +*** +float pow float float +Function.Intrinsic.Math.XToY({0}, {1}, {r}) + +! TODO: add Function.Intrinsic.Math.UnitConversion aliases \ No newline at end of file diff --git a/GASi/bin/Debug/test.gi b/GASi/bin/Debug/test.gi new file mode 100644 index 0000000..43872b1 --- /dev/null +++ b/GASi/bin/Debug/test.gi @@ -0,0 +1,23 @@ +#include "test.gas" + +float add(float a, float b) { + return a + b; +} + +//this is a comment +void main() { + global float coolFloatDude = 20.30; + global int coolIntegerDude = 30; + + coolFloatDude = add(coolFloatDude, coolFloatDude); + + :: + Function.Intrinsic.Math.Log(coolFloatDude,coolFloatDude) + Function.Intrinsic.Math.Exp(coolFloatDude,coolFloatDude) + Really.Long.Trash.Statement(coolFloatDude,coolFloatDude) + :: + + if(coolFloatDude <= coolIntegerDude) { //comment after the line ends + Msgbox.Show("Hi"); + } +} \ No newline at end of file diff --git a/GASi/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/GASi/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000000000000000000000000000000000000..f802a8d03351dfe97f5f34843f975d1b8b89ea3c GIT binary patch literal 6924 zcmeHMZBrXJ5VpZ67($9EB?R(vY12-Ux>p-;fXw6rwQ<5UP{wv>XE+a$?_{HJFRr8m zT!!D$U(o4KY)Ym=M8lU`Hl zJ6!tIt}5T+o?i4E$8$GI>sf7w3CTV8O@2ww;U}vVeOvj0y>XeZ1huo;w%@S1`7`U( zyaVRGY2+50h30ZIpSKD*x=2S5a^*8fKl$9Y5O2d(OnB{I1#P#P&?{7IxNTp_2Qc^n zwQcW+S!+@!qR&oM*7d^MhTV-yu8I!sex2R&ho>(jAo4#$A1$EewCk}c| zHQIo-=?iUT&$eK_kFl~wMT@CuSk-SxrnW$de8yX@Cs>I!DVSozl?vu}HoH*q%bPoe z>cXz~`SmIuU8z4mO0!{|QeB#6i3?^bPjDtD+m@oD%BV2+x2f8fldVe?<89$J!9uvI zDZyG?D$zL`kcNdRh9;Z?Mdyui4rS(2)28S0116qcUtQv|ZPN|{ULM$WwE1x0w(v|Q zr6<;4_FTc5z~#C_m{svz#U0iia#>SoB{}O$R$)yhmq+Fn>0uCK=@b@6PyiiBr0;-$pHUQP z6k{mHL5z{RAQNN)MCqi`WlpcFK%|eTU`9lC4Sj397IDbz;gVj^7qUGH+NGQ8$EV~T zXgW3w%gp5s;4MNLYd|@S&5l;`Oy6Oyl150;wUDE03%Pv3=rS5pTawNCOG?d1mHm5J<7W1p=ui)>*SO$%aUowM2KjN-qk^4|i>6UGi*`UOZSqAq5 z%}p=}_@yt_S!=g-GYA;S94P(J7o}2Jz~c-DNVeXB5}60py!aZorv-6`7K9<%^W&9Q zFO10eTGtJLs-JV1$g&q*#|Vvk)=@83_o-+H7JCSAG#0oXM-5;e0gM$3Ohlpu3y>ZI z(qWuPC90^7qRP}+G#Ow&iF=g+HafZnNPBUv5<#8<$bOt4TTJQilnOoZYd|yOMElLL zgI)S2?qwm+d+z>@XeoRr44BM-$@Dd5?{^>&yi)fdSK`Q#J<0!IqkD&8@(x=5PDOX@ z)m+9PQGsd8&*oI(@cVvmexJj(-TLTg`Wf7My(fc=7!$eVTM!>&x#BZOxC4yuppYs< z5;lqCJ7DDJCzC`rex){p^cq(YC7AYxMVl>7iy{h_)I?sfx#4Dx%7bBGQip3Nga rg6euKeo>|-wSXjNg7^Vo?gY+&o`TQtUxT~tzy2jNxZ9#sd42p}3A^_f literal 0 HcmV?d00001 diff --git a/GASi/obj/Debug/GASi.csproj.CoreCompileInputs.cache b/GASi/obj/Debug/GASi.csproj.CoreCompileInputs.cache new file mode 100644 index 0000000..6a63c4f --- /dev/null +++ b/GASi/obj/Debug/GASi.csproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +6acd9c8c400fd21bde195fc004fe6c0d34033e41 diff --git a/GASi/obj/Debug/GASi.csproj.FileListAbsolute.txt b/GASi/obj/Debug/GASi.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..99f2b96 --- /dev/null +++ b/GASi/obj/Debug/GASi.csproj.FileListAbsolute.txt @@ -0,0 +1,13 @@ +\\dc01\users\alec\my documents\visual studio 2015\Projects\GASi\GASi\bin\Debug\GASi.exe.config +\\dc01\users\alec\my documents\visual studio 2015\Projects\GASi\GASi\bin\Debug\GASi.exe +\\dc01\users\alec\my documents\visual studio 2015\Projects\GASi\GASi\bin\Debug\GASi.pdb +\\dc01\users\alec\my documents\visual studio 2015\Projects\GASi\GASi\obj\Debug\GASi.csprojResolveAssemblyReference.cache +\\dc01\users\alec\my documents\visual studio 2015\Projects\GASi\GASi\obj\Debug\GASi.exe +\\dc01\users\alec\my documents\visual studio 2015\Projects\GASi\GASi\obj\Debug\GASi.pdb +C:\Users\Julian\Desktop\GASi\GASi\bin\Debug\GASi.exe.config +C:\Users\Julian\Desktop\GASi\GASi\bin\Debug\GASi.exe +C:\Users\Julian\Desktop\GASi\GASi\bin\Debug\GASi.pdb +C:\Users\Julian\Desktop\GASi\GASi\obj\Debug\GASi.csprojResolveAssemblyReference.cache +C:\Users\Julian\Desktop\GASi\GASi\obj\Debug\GASi.csproj.CoreCompileInputs.cache +C:\Users\Julian\Desktop\GASi\GASi\obj\Debug\GASi.exe +C:\Users\Julian\Desktop\GASi\GASi\obj\Debug\GASi.pdb diff --git a/GASi/obj/Debug/GASi.csprojResolveAssemblyReference.cache b/GASi/obj/Debug/GASi.csprojResolveAssemblyReference.cache new file mode 100644 index 0000000000000000000000000000000000000000..715f72906158499fe1cb4cf2a406494cebdebf1f GIT binary patch literal 9846 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 XXF~lA(B1O8>ED_a|2Xh(DFXi+HT5h( literal 0 HcmV?d00001 diff --git a/GASi/obj/Debug/GASi.pdb b/GASi/obj/Debug/GASi.pdb new file mode 100644 index 0000000000000000000000000000000000000000..f2605d3d85af0874587d40f19654e24405c72754 GIT binary patch literal 46592 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 literal 0 HcmV?d00001 diff --git a/GASi/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/GASi/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs new file mode 100644 index 0000000..e69de29 diff --git a/GASi/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/GASi/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs new file mode 100644 index 0000000..e69de29 diff --git a/GASi/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/GASi/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs new file mode 100644 index 0000000..e69de29 diff --git a/GASi/stdlib/math.glib b/GASi/stdlib/math.glib new file mode 100644 index 0000000..ac9259f --- /dev/null +++ b/GASi/stdlib/math.glib @@ -0,0 +1,162 @@ +! gasi stdlib +! math function definitions +! {0}, {1}, {2}, etc. indicate function arguments +! {r} indicates the return value + +float abs float +Function.Instrinsic.Math.Abs({0}, {r}) +*** +float acos float +Function.Instrinsic.Math.Acos({0}, {r}) +*** +float acsc float +Function.Instrinsic.Math.ACoSec({0}, {r}) +*** +float acot float +Function.Intrinsic.Math.ACoTan({0}, {r}) +*** +float asec float +Function.Intrinsic.Math.Asec({0}, {r}) +*** +float asin float +Function.Intrinsic.Math.Asin({0}, {r}) +*** +float atan float +Function.Intrinsic.Math.Atan({0}, {r}) +*** +int upccheck string +Function.Intrinsic.Math.CalculateUPCcheckDigit({0}, {r}) +*** +float tofloat string +Function.Intrinsic.Math.ConvertToFloat({0}, {r}) +*** +int toint string +Function.Intrinsic.Math.ConvertToLong({0}, {r}) +*** +float cos float +Function.Intrinsic.Math.Cos({0}, {r}) +*** +float csc float +Function.Intrinsic.Math.CoSec({0}, {r}) +*** +float cot float +Function.Intrinsic.Math.CoTan({0}, {r}) +*** +string tofraction float +Function.Intrinsic.Math.DecimalToFraction({0}, {r}) +*** +string tofraction float float +Function.Intrinsic.Math.DecimalToFraction({0}, {1}, {r}) +*** +float degrees float +Function.Intrinsic.Math.DegToRad({0}, {r}) +*** +float radians float +Function.Intrinsic.Math.RadToDeg({0}, {r}) +*** +float exp float +Function.Intrinsic.Math.Exp({0}, {r}) +*** +int whole float +Function.Intrinsic.Math.Fix({0}, {r}) +*** +float acosh float +Function.Intrinsic.Math.HACos({0}, {r}) +*** +float acsch float +Function.Intrinsic.Math.HACoSec({0}, {r}) +*** +float acoth float +Function.Intrinsic.Math.HACoTan({0}, {r}) +*** +float asech float +Function.Intrinsic.Math.HASec({0}, {r}) +*** +float asinh float +Function.Intrinsic.Math.HASin({0}, {r}) +*** +float atanh float +Function.Intrinsic.Math.HATan({0}, {r}) +*** +float cosh float +Function.Intrinsic.Math.Hcos({0}, {r}) +*** +float csch float +Function.Intrinsic.Math.HCoSec({0}, {r}) +*** +float coth float +Function.Intrinsic.Math.HCoTan({0}, {r}) +*** +float sech float +Function.Intrinsic.Math.Hsec({0}, {r}) +*** +float sinh float +Function.Intrinsic.Math.Hsin({0}, {r}) +*** +float tanh float +Function.Intrinsic.Math.HTan({0}, {r}) +*** +int idiv float float +Function.Intrinsic.Math.Idiv({0}, {1}, {r}) +*** +float inv float +Function.Intrinsic.Math.Inv({0}, {r}) +*** +bool inrange float float float +Function.Intrinsic.Math.IsInRange({0}, {1}, {2}, {r}) +*** +bool isnum string +Function.Intrinsic.Math.IsNumeric({0}, {r}) +*** +float log float +Function.Intrinsic.Math.Log({0}, {r}) +*** +float logn float int +Function.Intrinsic.Math.LogN({0}, {1}, {r}) +*** +float polarx float float +Function.Intrinsic.Math.PolarToX({0}, {1}, {r}) +*** +float polary float float +Function.Intrinsic.Math.PolarToY({0}, {1}, {r}) +*** +float lendiag float float +Function.Intrinsic.Math.RectToRad({0}, {1}, {r}) +*** +float angdiag float float +Function.Intrinsic.Math.RectToTheta({0}, {1}, {r}) +*** +float rand +Function.Intrinsic.Math.Rnd({r}) +*** +float rand float +Function.Intrinsic.Math.Rnd({0}, {r}) +*** +float rand float float +Function.Intrinsic.Math.Rnd({0}, {1}, {r}) +*** +float round float float +Function.Intrinsic.Math.Round({0}, {1}, 0, {r}) +*** +float huround float float +Function.Intrinsic.Math.Round({0}, {1}, 1, {r}) +*** +float sec float +Function.Intrinsic.Math.Sec({0}, {r}) +*** +int sign float +Function.Intrinsic.Math.Sgn({0}, {r}) +*** +float sin float +Function.Intrinsic.Math.Sin({0}, {r}) +*** +float sqrt float +Function.Intrinsic.Math.Sqr({0}, {r}) +*** +float tan float +Function.Intrinsic.Math.Tan({0}, {r}) +*** +float pow float float +Function.Intrinsic.Math.XToY({0}, {1}, {r}) + +! TODO: add Function.Intrinsic.Math.UnitConversion aliases \ No newline at end of file