示例#1
1
        async void Handle_Clicked(object sender, System.EventArgs e)
        {
            var x = new CloudData();

            GraphUser y = await x.GetDisplayName();


            Task <string> access_id = x.GetAccessID();

            System.Diagnostics.Debug.WriteLine("Debug: get access ID " + access_id.Result);

            //await DisplayAlert("Alert", "Welcome, " + y, "OK");

            var displayName = new Item
            {
                Name    = "Logged in as: " + y.displayName,
                Company = "Company: " + y.Company,
                Stand   = "Stand number: " + y.StandID
            };

            App.Current.Properties["LoginName"]   = "Logged in as: " + y.displayName;
            App.Current.Properties["StandName"]   = "Stand ID: " + y.StandID;
            App.Current.Properties["CompanyName"] = "Company: " + y.Company;



            await App.Current.SavePropertiesAsync();

            var Scanner = new Scanner.Scanner();

            Scanner.BindingContext = displayName;


            Application.Current.MainPage = Scanner;
        }
示例#2
0
        public void SetTextAsThisToken(string rawText)
        {
            //Stream stream = new MemoryStream(UnicodeEncoding.UTF8.GetBytes(rawText));
            StreamReader stream = new StreamReader(new MemoryStream(Globals.LpcInternalCodec.GetBytes(rawText)), Globals.LpcFileCodec, false);
            ParseMap     map;
            SyntaxRules  lpcRules = new SyntaxRules(out map);

            Scanner.Scanner scanner = new Scanner.Scanner(stream);
            Lexer.Lexer     lexer   = new Lexer.Lexer(scanner);
            Parser          parser  = new Parser(lexer, map);

            foreach (Token token in parser.LPCTokens)
            {
                if (token.Lexmes.Count > 0)
                {
                    Token copy = token;
                    Type = copy.Type;
                    object tempLexmes = copy.Lexmes.ToArray().Clone();
                    this.Lexmes = new List <Stellarmass.LPC.Lexer.Lexme>((Lexer.Lexme[])tempLexmes);

                    for (int outter = 0; outter < copy.Children.Count; outter++)
                    {
                        this.Children.Add(new List <Token>());
                        foreach (Token t in copy.Children[outter])
                        {
                            this.Children[outter].Add(new Token(t));
                        }
                    }
                    return;
                }
            }
            return;
        }
示例#3
0
        public void Test01()
        {
            var loggerFactory = LoggerFactory.Create(builder =>
            {
                builder
                .AddFilter("ASTBuilder", LogLevel.Warning)
                .AddFilter("ASTTraverser", LogLevel.Warning)
                .AddFilter("CSGEN", LogLevel.Trace)
                .AddDebug();
            });
            var builderLogger = loggerFactory.CreateLogger("ASTBuilder");
            var builderTracer = new DebugTracer(builderLogger);

            var encoding = new UTF8Encoding();

            using var stream = new MemoryStream();
            stream.Write(encoding.GetBytes(TestCase1B));
            stream.Seek(0, SeekOrigin.Begin);

            var scanner    = new Scanner.Scanner(stream);
            var astBuilder = new AstBuilder(new AstNodeFactory(builderTracer),
                                            new ProdInfoFactory(builderTracer), new Stack <IAstNode>(), builderTracer);
            var parser   = new Parser.Parser(scanner, astBuilder);
            var rootNode = parser.ParseGoal();

            var traverserLogger = loggerFactory.CreateLogger("ASTTraverser");
            var traverserTracer = new DebugTracer(traverserLogger);
            var traverser       = new AstTraverser(traverserTracer);

            var output       = new MemoryStream();
            var streamWriter = new StreamWriter(stream);
            var gen          = new CSharpGenerator(traverser, streamWriter);

            gen.Run(rootNode);
        }
        async public void SubmitCodeToCloud(string code)

        {
            //string encodedString = Base64Encode(code);

            System.Diagnostics.Debug.WriteLine("Debug: user is attempting to submit code of length " + code.Length + ":" + code);

            var submit = new CloudData();

            string userAddedNotes = TextNotes.Text;

            var response = await submit.PostBarcode(code, userAddedNotes);

            if (response == "OK")

            {
                await DisplayAlert("Success", "Your unique code was successfully saved", "OK");


                var Scanner = new Scanner.Scanner();

                // Navigate to our scanner page

                App.Current.MainPage = Scanner;
            }

            else

            {
                await DisplayAlert("Alert", "An error occurred, please scan and submit your QR code again", "OK");
            }
        }
示例#5
0
        private void buildToolStripMenuItem_Click(object sender, EventArgs e)
        {
            List <Handler.Error> Errors = new List <Handler.Error>();

            if (ActiveEditor == null)
            {
                return;
            }
            Scanner.Scanner S = new Scanner.Scanner(ActiveEditor.getCode());
            S.Scan();
            if (S.ErrorList.Count > 0)
            {
                Errors.AddRange(S.ErrorList);
            }
            Parser.Parser parser    = new Parser.Parser(S.Tokens);
            Tree          parseTree = parser.parse();

            if (parser.ErrorList.Count > 0)
            {
                Errors.AddRange(S.ErrorList);
            }
            Preview.UpdateTree(parseTree);
            Preview.showPane(false);
            if (Errors.Count > 0)
            {
                Preview.showPane(true);
                Output ErrorsWin = new Output(Errors);
                Controls.Add(ErrorsWin);
                ErrorsWin.BringToFront();
            }
        }
示例#6
0
        public Lexer(string source, bool isFileSource)
        {
            if (isFileSource)
            {
                if(!File.Exists(source))
                    throw new FileNotFoundException("The specified source code file was not found.");

                var code = string.Empty;

                try
                {
                    code = File.ReadAllText(source);
                }
                catch (Exception ex)
                {
                    // To do: log here
                    throw;
                }
                Scanner = new Scanner.Scanner(code);
            }
            Scanner = new Scanner.Scanner(source);

            while (Scanner.IsContentInPipeline)
            {
                var character = Scanner.GetCharacter();

                if (character.Cargo == CharacterSymbols.WHITESPACE) // or statement terminator (add whatever is needed)
                {
                    isTokenUnderConstruction = false;
                    if (_currentToken != null)
                    {
                        _currentToken.FinalizeToken();
                        _currentToken.DetermineType();
                        _tokens.Add(_currentToken);
                    }
                    _currentToken = null;
                    continue;
                }

                // Token has be open
                if (_currentToken == null)
                {
                    _currentToken = new Token();
                    isTokenUnderConstruction = false;
                }

                _currentToken.Cargo += character.Cargo;

                if (!isTokenUnderConstruction)
                {
                    isTokenUnderConstruction = true;
                    _currentToken.TokenStartLineNumber = character.SourceLineNumber;
                    _currentToken.TokenStartColumnNumber = character.SourceColumnNumber;
                }

            }
        }
        private void btn_scan_Click(object sender, RoutedEventArgs e)
        {
            int total_sheets = Convert.ToInt16(this.txt_sheet_count.Text);
            scanned_files = new List<string>(total_sheets);
            bool scanner_flag = false;
            Scanner.Scanner scanner = null;
            try
            {
                scanner = new Scanner.Scanner();
                
            }
            catch (Exception expcep)
            {
                scanner_flag = true;
                MessageBox.Show(" Scanner has not been detected. Please turn on your scanner and connect to the system and make sure it has been detected by Windows.\n The application will now shut down", "Scanner not detected.",
                    MessageBoxButton.OK, MessageBoxImage.Exclamation);

            }
            
            if (scanner_flag == true)
            {
                Application.Current.Shutdown();
            }
            else
            {
                
                List<OMRSoft.OMRSoft> sheets = new List<OMRSoft.OMRSoft>(total_sheets);
                for (int i = 0; i < total_sheets; ++i)
                {
                    MessageBox.Show("Place Sheet on the scanner and close the lid.", "Next Sheet", MessageBoxButton.OK, MessageBoxImage.Information);
                    string file = Worker.scanned_img_dir + "/Scan_" + Worker.scanned_image_index.ToString() + ".jpg";
                    Worker.scanned_image_index++;

                    Scanner.Scanner scanner1 = new Scanner.Scanner();
                    scanner1.scan(XMLRead.Scanner_DPI.dpi_value);
                    scanner1.save(file);
                    scanned_files.Add(file);
                    preview_window.Source = new BitmapImage( new Uri(file));
                    OMRSoft.OMRSoft sh = new OMRSoft.OMRSoft(file);
                    sh.PreProcess();
                    sh.blob_detect();
                    sh.generate_results(sheet);
                    sheets.Add(sh);
                    lbl_scanned_count.Content = (i+1).ToString();
                }

                Save_to_DB new_window = new Save_to_DB(sheets, scanned_files, total_sheets);
                new_window.ShowDialog();
            }
            

            
        }
示例#8
0
        private static IList <Tuple <string, bool> > Split(string line, int max, int min)
        {
            var lines = new List <Tuple <string, bool> >();
            int nLine = (line.Length / max) + ((line.Length % max) != 0 ? 1 : 0);

            if (nLine == 1)
            {
                lines.Add(new Tuple <string, bool>(line, false));
                return(lines);
            }
            if (line.Length < 1)
            {
                lines.Add(new Tuple <string, bool>(line, false));
            }
            else
            {
                for (int i = 0; i < line.Length; i += (i == 0 ? max : min))
                {
                    lines.Add(new Tuple <string, bool>(line.Substring(i, Math.Min((i == 0 ? max : min), line.Length - i)), true));
                }
            }
            TokensLine tempTokensLine = TokensLine.CreateVirtualLineForInsertedToken(0, line);

            tempTokensLine.InitializeScanState(new MultilineScanState(false, false, false, IBMCodePages.GetDotNetEncodingFromIBMCCSID(1147)));

            Scanner.Scanner scanner          = new Scanner.Scanner(line, 0, line.Length - 1, tempTokensLine, null, false);
            Token           t                = null;
            int             nCurLength       = 0;
            int             nSpan            = max;
            int             index            = 0;
            bool            bNextNoIndicator = false;

            while ((t = scanner.GetNextToken()) != null)
            {
                nCurLength += t.Length;
                if (nCurLength >= nSpan)
                {
                    if (t.TokenFamily == TokenFamily.Whitespace || (nCurLength == nSpan))
                    {
                        bNextNoIndicator = true;
                    }
                    nSpan += min;
                    index++;
                }
                else if (bNextNoIndicator)
                {
                    lines[index]     = new Tuple <string, bool>(lines[index].Item1, false);
                    bNextNoIndicator = false;
                }
            }
            return(lines);
        }
示例#9
0
        public static void ClientTalk(SslStream clientStream)
        {
            while (true)
            {
                try
                {
                    //blocks until a client sends a message
                    var result = GetMessageFromClient(clientStream);
                    switch (result)
                    {
                    case "LOOK UP SINGLE HASH":
                        // Send go ahead
                        SendMessageToClient(clientStream, "200 OK");
                        var hash = GetMessageFromClient(clientStream);
                        if (hash.Length >= 32)
                        {
                            // create a new process so the client can send a new request
                            Task.Run(() =>
                            {
                                try
                                {
                                    var hashToCheck = GetMessageFromClient(clientStream);
                                    var newScanner  = new Scanner.Scanner();
                                    var isFileClear = newScanner.ScanFile(hashToCheck);
                                }
                                catch (Exception)
                                {
                                    SendMessageToClient(clientStream, "901 FAIL");
                                }
                            });
                        }
                        break;

                    case "LOOK UP STARTUPFILES":
                        break;

                    case "IS CLIENT ALIVE":
                        // check Connection
                        break;

                    default:
                        SendMessageToClient(clientStream, "900 FAIL");
                        break;
                    }
                }
                catch
                {
                    //a socket error has occured
                    break;
                }
            }
        }
示例#10
0
        public void InsertTextAsTokens(string rawText, int childIndex, int tokenIndex)
        {
            //Stream stream = new MemoryStream(UnicodeEncoding.UTF8.GetBytes(rawText));
            StreamReader stream = new StreamReader(new MemoryStream(Globals.LpcInternalCodec.GetBytes(rawText)), Globals.LpcFileCodec, false);
            ParseMap     map;
            SyntaxRules  lpcRules = new SyntaxRules(out map);

            Scanner.Scanner scanner = new Scanner.Scanner(stream);
            Lexer.Lexer     lexer   = new Lexer.Lexer(scanner);
            Parser          parser  = new Parser(lexer, map);

            this.Tokens.InsertRange(tokenIndex, parser.LPCTokens);
        }
示例#11
0
        public static List <Token> CreateTokenListFromText(string rawText)
        {
            //Stream stream = new MemoryStream(UnicodeEncoding.UTF8.GetBytes(rawText));
            StreamReader stream = new StreamReader(new MemoryStream(Globals.LpcInternalCodec.GetBytes(rawText)), Globals.LpcFileCodec, false);
            ParseMap     map;
            SyntaxRules  lpcRules = new SyntaxRules(out map);

            Scanner.Scanner scanner = new Scanner.Scanner(stream);
            Lexer.Lexer     lexer   = new Lexer.Lexer(scanner);
            Parser          parser  = new Parser(lexer, map);

            return(parser.LPCTokens);
        }
示例#12
0
        private void btn_scan_Click(object sender, RoutedEventArgs e)
        {
            int total_sheets = Convert.ToInt16(this.txt_sheet_count.Text);

            scanned_files = new List <string>(total_sheets);
            bool scanner_flag = false;

            Scanner.Scanner scanner = null;
            try
            {
                scanner = new Scanner.Scanner();
            }
            catch (Exception expcep)
            {
                scanner_flag = true;
                MessageBox.Show(" Scanner has not been detected. Please turn on your scanner and connect to the system and make sure it has been detected by Windows.\n The application will now shut down", "Scanner not detected.",
                                MessageBoxButton.OK, MessageBoxImage.Exclamation);
            }

            if (scanner_flag == true)
            {
                Application.Current.Shutdown();
            }
            else
            {
                List <OMRSoft.OMRSoft> sheets = new List <OMRSoft.OMRSoft>(total_sheets);
                for (int i = 0; i < total_sheets; ++i)
                {
                    MessageBox.Show("Place Sheet on the scanner and close the lid.", "Next Sheet", MessageBoxButton.OK, MessageBoxImage.Information);
                    string file = Worker.scanned_img_dir + "/Scan_" + Worker.scanned_image_index.ToString() + ".jpg";
                    Worker.scanned_image_index++;

                    Scanner.Scanner scanner1 = new Scanner.Scanner();
                    scanner1.scan(XMLRead.Scanner_DPI.dpi_value);
                    scanner1.save(file);
                    scanned_files.Add(file);
                    preview_window.Source = new BitmapImage(new Uri(file));
                    OMRSoft.OMRSoft sh = new OMRSoft.OMRSoft(file);
                    sh.PreProcess();
                    sh.blob_detect();
                    sh.generate_results(sheet);
                    sheets.Add(sh);
                    lbl_scanned_count.Content = (i + 1).ToString();
                }

                Save_to_DB new_window = new Save_to_DB(sheets, scanned_files, total_sheets);
                new_window.ShowDialog();
            }
        }
        async void CallAuthenticate()

        {
            var x = new CloudData();
            AuthenticationResult token = await x.GetAccessToken();

            System.Diagnostics.Debug.WriteLine("Debug: access token " + token);

            if (token == null)

            {
                await DisplayAlert("Alert", "User has cancelled login or the browser is incompatible", "OK");

                var About = new Views.AboutPage();

                // Navigate to our scanner page
                //await Navigation.PushModalAsync(About);
                //NavigationPage.SetHasBackButton(this, false);

                Application.Current.MainPage = About;

                return;
            }

            GraphUser y = await x.GetDisplayName();

            //await DisplayAlert("Alert", "Welcome, " + y, "OK");

            var displayName = new Item
            {
                Id   = y.displayName,
                Text = "Welcome! You have successfully logged in"
            };

            var Scanner = new Scanner.Scanner();

            Scanner.BindingContext = displayName;

            // Navigate to our scanner page
            //await Navigation.PushModalAsync(Scanner);
            //NavigationPage.SetHasBackButton(this, false);

            Application.Current.MainPage = Scanner;
        }
示例#14
0
 public Parser()
 {
     _curr        = new Token.Token(TokenType.Error, "", -1, -1);
     _scanner     = new Scanner.Scanner();
     _bss         = new HashSet <BssData>();
     _data        = new HashSet <PData>();
     _arrs        = new List <PArray>();
     _text        = new ArrayList();
     _procs       = new ArrayList();
     _bssCtr      = -1;
     _dataCtr     = -1;
     _expCtr      = -1;
     _arrCtr      = -1;
     _tmpCtr      = -1;
     _loopCtr     = -1;
     _ifCtr       = -1;
     _elseCtr     = -1;
     _switchCtr   = -1;
     _strCtr      = -1;
     _copyCtr     = -1;
     _asmFileName = null;
 }