Jump to content

Search the Community

Showing results for tags 'parser'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • General
    • Announcements and Site News
    • Administration
  • AutoIt v3
    • AutoIt Help and Support
    • AutoIt Technical Discussion
    • AutoIt Example Scripts
  • Scripting and Development
    • Developer General Discussion
    • Language Specific Discussion
  • IT Administration
    • Operating System Deployment
    • Windows Client
    • Windows Server
    • Office


  • AutoIt Team
    • Beta
    • MVP
  • AutoIt
    • Automation
    • Databases and web connections
    • Data compression
    • Encryption and hash
    • Games
    • GUI Additions
    • Hardware
    • Information gathering
    • Internet protocol suite
    • Maths
    • Media
    • PDF
    • Security
    • Social Media and other Website API
    • Windows
  • Scripting and Development
  • IT Administration
    • Operating System Deployment
    • Windows Client
    • Windows Server
    • Office

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start






Found 7 results

  1. I'm writing a recursive decent parser in Autoit! The programming language i'm making is called HighLevel. I'm doing this for learning purposes, because it's fun and because I can implement it into my other project: Fullscreen Console With custom programming language! It's not easy... In Autoit you don't have objects like in Java or Visual Basic, so I had to figure out a way to still convert the code to an abstract syntax tree. I used nested array's and array based dictionary's instead of objects. The code is still very dirty and I need to make a lot of modifications but if you're careful with testing you'll see what it can do already. Console window Because this code eventually will get implemented into my console project I crafted a nice little console window (with a custom sci-fi looking theme, yeah i was a little bored haha). {ESC} is your panic button for now, it terminates the script completely. If you get an error while opening a script the text will turn red. To minimize it press the blue button, to close it use the red one, to drag the gui just grab it on one of the sides. The console window will display what you write to it with your "HighLevel-script" and some additional information: How to test it: Download: HighLevel.Au3, Debug.Au3 (includes a function to display nested arrays for debugging), GUI.bmp (for the console) Compile the Autoit code to EXE. The GUI.bmp must be in the same folder as the EXE file! Write a HighLevel-script (text file) and drag it into the compiled autoit-exe. The custom made little console window will pop up in the left top corner of your screen and your HighLevel-script (the text file) will be interpreted and executed. The Language: exit script:     Abort      show / hide the console:     Show     Hide      write to/clear the console:     Write 'this is a ''string''!'     Clear variables: test_var_1 = 123 some_list = ['a', 5, true] some_list[1] = 3 math = 1 + 2 * 3 / 4 - -5 & test_var beep (under construction):     Beep F, optD wait X seconds:     Wait X      Messages:     Message 'Hello World!'      move/click the mouse:     Move X, Y     Click      send keys (under construction):     Send 'HighLevel', True      if's:     If false     ElseIf true         # this part will run     Else     End subs:     Sub X         # do stuff     End     Call X      for loops:     For X = 1 to 10         # X iterates     End Values:     Input 'Give me input'     Random     YesNo 'yes or no' operators:     + - * / & > = ! < ( ) And Not Or Example script: # my first HighLevel script message 'Hello World!' message 'Lets write to the console...' clear # clear the console... list = ['a', 16, true] for i = 0 to 2     write list[i]     wait 1 end sub test     if YesNo 'would you like to quit?'         message 'Goodbye!'         abort     else         write 1 + 2 * 3 & ' math!'     end end call test test script.HighLevel GUI.bmp Debug.au3 HighLevel.au3
  2. Hello, first time poster here I am working on a project that has to parse a log file in real time. The thing is I know it's hard for Autoit to attach itself to log files when they're already in use by other programs, at least in my experience. I was taking a look at this thread because the log file is quite large and I think Autoit might be a little slow on it's own. The thing is I don't know how to use this properly to extract all data out of a log file or is there a native way to do this using Autoit. Basically , I just need a log parser that is able to read from a log that is 'already opened' and 'being written to' Thanks!
  3. Hi everyone Are there any people here that know how to use a parser generator that uses 'bnf' (not 'ebnf'!) i'm using the gold parser: http://goldparser.org/index.htm not possible in autoit: https://www.autoitscript.com/forum/topic/167663-activex-gold-parser-in-autoit-is-this-possible/ What i'm looking for is the best way to parse a list: <List> ::= <Item> ',' <List> | <Item> <Item> ::= Number | String for example, the tree returned from: 'test', 1, 2is: since its not possible in AutoIT code I did it in vb script. this is what i did: ' in the parse loop: Case Rule_List_Comma set result = new list call result.input(.tokens(0).data,.tokens(2).data) ' the list class: class list private arg0 private arg1 public sub input(a,b) set arg0 = a set arg1 = b end sub private sub push(item,byref stack) redim preserve stack(ubound(stack) + 1) stack(ubound(stack)) = item end sub public function value value = array(arg0.value) value2 = arg1.value if isarray(value2) then for each thing in value2 push thing,value next else push value2,value end if end function end class is there a better way to do this? regards, TheAutomator
  4. hi everyone i have an interesting question about the gold parser: info: http://www.goldparser.org/index.htm download (regsvr32 to register): http://www.goldparser.org/engine/1/vb6/index.htm on the website it seems that this dll can be used as an activex object, does that mean that it can be used in autoit to? help for the activeX dll: http://www.goldparser.org/engine/1/vb6/doc/index.htm it gives me error code '4' if i try to use it... Const $gpMsgAccept = 3 Const $gpMsgCommentBlockRead = 9 Const $gpMsgCommentError = 7 Const $gpMsgCommentLineRead = 10 Const $gpMsgInternalError = 8 Const $gpMsgLexicalError = 5 Const $gpMsgNotLoadedError = 4 Const $gpMsgReduction = 2 Const $gpMsgSyntaxError = 6 Const $gpMsgTokenRead = 1 $Parser = ObjCreate("goldparserengine.goldparser") $Parser.LoadCompiledGrammar("test_script.cgt") $Parser.OpenFile("Program.txt") $Response = $Parser.Parse() MsgBox(0,'test',$Response) If there are people interested in answering or helping feel free to reply and then i will upload the "test_script.cgt" somewhere if you want i know this question is a bit specific but you never know.. Thanks for reading! TheAutomator.
  5. Hello, try to read simple XML and i decided to make generic script. I've a value (140403_0_21_00_XX_C044C021_00N_00F) and i MUST retrieve a value in same node id (="21") <PubPlain> <spread0 id="1" pdfname="140403_0_01_54_MN_M048C001_00N_00F" /> <spread1 id="2" pdfname="140403_0_02_00_XX_C002C047_00N_00F" /> <spread2 id="3" pdfname="140403_0_03_54_XX_CL16C003_00N_00F" /> <spread3 id="4" pdfname="140403_0_04_54_XX_C004CL15_00N_00F" /> <spread4 id="5" pdfname="140403_0_05_54_XX_ML14M005_00N_00F" /> <spread5 id="6" pdfname="140403_0_06_54_XX_C006CL13_00N_00F" /> <spread6 id="7" pdfname="140403_0_07_54_XX_CL12C007_00N_00F" /> <spread7 id="8" pdfname="140403_0_08_54_XX_C008CL11_00N_00F" /> <spread8 id="9" pdfname="140403_0_09_54_XX_CL10C009_00N_00F" /> <spread9 id="10" pdfname="140403_0_10_54_XX_M010CL09_00N_00F" /> <spread10 id="11" pdfname="140403_0_11_54_XX_CL08C011_00N_00F" /> <spread11 id="12" pdfname="140403_0_12_54_XX_C012CL07_00N_00F" /> <spread12 id="13" pdfname="140403_0_13_54_XX_CL06C013_00N_00F" /> <spread13 id="14" pdfname="140403_0_14_54_XX_C014CL05_00N_00F" /> <spread14 id="15" pdfname="140403_0_15_54_XX_CL04C015_00N_00F" /> <spread15 id="16" pdfname="140403_0_16_54_XX_C016CL03_00N_00F" /> <spread16 id="17" pdfname="140403_0_17_54_XX_CL02C017_00N_00F" /> <spread17 id="18" pdfname="140403_0_18_54_XX_C018CL01_00N_00F" /> <spread18 id="19" pdfname="140403_0_19_00_XX_C046C019_00N_00F" /> <spread19 id="20" pdfname="140403_0_20_00_XX_C020C045_00N_00F" /> <spread20 id="21" pdfname="140403_0_21_00_XX_C044C021_00N_00F" /> <spread21 id="22" pdfname="140403_0_22_00_XX_M022C043_00N_00F" /> <spread22 id="23" pdfname="140403_0_23_00_XX_C042C023_00N_00F" /> <spread23 id="24" pdfname="140403_0_24_00_XX_C024C041_00N_00F" /> <spread24 id="25" pdfname="140403_0_25_00_XX_M040C025_00N_00F" /> <spread25 id="26" pdfname="140403_0_26_00_XX_C026C039_00N_00F" /> <spread26 id="27" pdfname="140403_0_27_00_XX_C038C027_00N_00F" /> <spread27 id="28" pdfname="140403_0_28_00_XX_C028C037_00N_00F" /> <spread28 id="29" pdfname="140403_0_29_00_XX_C036C029_00N_00F" /> <spread29 id="30" pdfname="140403_0_30_00_XX_C030C035_00N_00F" /> <spread30 id="31" pdfname="140403_0_31_00_XX_M034C031_00N_00F" /> <spread31 id="32" pdfname="140403_0_32_00_XX_C032C033_00N_00F" /> </PubPlain> My XMLs are simple but tend to vary in certain conditions. So i haven't any sure foothold, I must read XML everytime. I've read several approaches to XML reading but can't determine which best. (dead?) _XMLDomWrapper.au3 seems to be the best choice; can you suggest best way to implement XML reading in AI ? Thank you, m.
  6. Hi, I'm inviting all autoit forum members to contribute to a HTML parser udf. I going to attempt to replicate a python module called BeautifulSoup. It would be greatly appreciated if some senior Autoit programmers took interest in this topic. There is no template other than the module written in python located here and the documentation here. I can't wait to see what this develops into.
  7. For those of you (and I know from previous discussions that there are people out there) making your own compilers and interpreters and choosing not to use tools like yacc. Pratt's parser is a predictive parser, but with a number of improvements that make it so easy to implement you wonder why in the 38 since the original paper was published it hasn't been used in more than a small handful of projects. Look it up if you ever consider hand writing a parser. I managed to write a calculator from first principles in 30 mins. 20 minutes of that was writing the lexer. Mat Edit: Just to give you an idea of how unused this is... Google "Pratt's Parser" and you'll get this thread as the first result.
  • Create New...