diff options
author | Araq <rumpf_a@web.de> | 2015-06-27 23:35:34 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2015-06-29 02:48:32 +0200 |
commit | 8f58ab99eb69e2d03a66d4d9401edb87d13e2492 (patch) | |
tree | e14db2629a7af7f1162187259f295f52180d7146 /tools/nimrepl.nim | |
parent | 2297a1aa6048fcbcffca4e2c2e4ede275261e83d (diff) | |
download | Nim-8f58ab99eb69e2d03a66d4d9401edb87d13e2492.tar.gz |
nimrepl compiles again (but doesn't work)
Diffstat (limited to 'tools/nimrepl.nim')
-rw-r--r-- | tools/nimrepl.nim | 170 |
1 files changed, 85 insertions, 85 deletions
diff --git a/tools/nimrepl.nim b/tools/nimrepl.nim index 3d818a556..ac82d8b75 100644 --- a/tools/nimrepl.nim +++ b/tools/nimrepl.nim @@ -15,10 +15,10 @@ else: const runCmd = "c -r" var nimExe = findExe("nim") -if nimExe.len == 0: nimExe = "../bin" / addFileExt("nim", os.exeExt) +if nimExe.len == 0: nimExe = "../bin" / addFileExt("nim", os.ExeExt) proc execCode(code: string): string = - var f: TFile + var f: File if open(f, "temp.nim", fmWrite): f.write(code) f.close() @@ -28,145 +28,145 @@ proc execCode(code: string): string = else: result = "cannot open file 'temp.nim'" -var shiftPressed = False +var shiftPressed = false var w: gtk2.PWindow -var InputTextBuffer: PTextBuffer -var OutputTextBuffer: PTextBuffer +var inputTextBuffer: PTextBuffer +var outputTextBuffer: PTextBuffer -proc destroy(widget: PWidget, data: pgpointer){.cdecl.} = +proc destroy(widget: PWidget, data: pointer){.cdecl.} = main_quit() -proc fileOpenClicked(menuitem: PMenuItem, userdata: pgpointer) {.cdecl.} = - var path = ChooseFileToOpen(w) +proc fileOpenClicked(menuitem: PMenuItem, userdata: pointer) {.cdecl.} = + var path = chooseFileToOpen(w) if path != "": var file = readFile(path) if file != nil: - set_text(InputTextBuffer, file, len(file).gint) + set_text(inputTextBuffer, file, len(file).gint) else: error(w, "Unable to read from file") -proc fileSaveClicked(menuitem: PMenuItem, userdata: pgpointer) {.cdecl.} = - var path = ChooseFileToSave(w) - +proc fileSaveClicked(menuitem: PMenuItem, userdata: pointer) {.cdecl.} = + var path = chooseFileToSave(w) + if path == "": return var startIter: TTextIter var endIter: TTextIter - get_start_iter(InputTextBuffer, addr(startIter)) - get_end_iter(InputTextBuffer, addr(endIter)) - var InputText = get_text(InputTextBuffer, addr(startIter), - addr(endIter), False) - var f: TFile + get_start_iter(inputTextBuffer, addr(startIter)) + get_end_iter(inputTextBuffer, addr(endIter)) + var inputText = get_text(inputTextBuffer, addr(startIter), + addr(endIter), false) + var f: File if open(f, path, fmWrite): - f.write(InputText) + f.write(inputText) f.close() else: error(w, "Unable to write to file") -proc inputKeyPressed(widget: PWidget, event: PEventKey, - userdata: pgpointer): bool {.cdecl.} = +proc inputKeyPressed(widget: PWidget, event: PEventKey, + userdata: pointer): bool {.cdecl.} = if ($keyval_name(event.keyval)).tolower() == "shift_l": # SHIFT is pressed - shiftPressed = True - -proc setError(msg: string) = + shiftPressed = true + +proc setError(msg: string) = outputTextBuffer.setText(msg, msg.len.gint) - -proc inputKeyReleased(widget: PWidget, event: PEventKey, - userdata: pgpointer): bool {.cdecl.} = + +proc inputKeyReleased(widget: PWidget, event: PEventKey, + userdata: pointer): bool {.cdecl.} = #echo(keyval_name(event.keyval)) if ($keyval_name(event.keyval)).tolower() == "shift_l": # SHIFT is released - shiftPressed = False - + shiftPressed = false + if ($keyval_name(event.keyval)).tolower() == "return": #echo($keyval_name(event.keyval), "Shift_L") # Enter pressed - if shiftPressed == False: + if not shiftPressed: var startIter: TTextIter var endIter: TTextIter - get_start_iter(InputTextBuffer, addr(startIter)) - get_end_iter(InputTextBuffer, addr(endIter)) - var InputText = get_text(InputTextBuffer, addr(startIter), - addr(endIter), False) + get_start_iter(inputTextBuffer, addr(startIter)) + get_end_iter(inputTextBuffer, addr(endIter)) + var inputText = get_text(inputTextBuffer, addr(startIter), + addr(endIter), false) try: - var r = execCode($InputText) - set_text(OutputTextBuffer, r, len(r).gint) - except EIO: + var r = execCode($inputText) + set_text(outputTextBuffer, r, len(r).gint) + except IOError: setError("Error: Could not open file temp.nim") proc initControls() = w = window_new(gtk2.WINDOW_TOPLEVEL) set_default_size(w, 500, 600) - set_title(w, "Nimrod REPL") + set_title(w, "Nim REPL") discard signal_connect(w, "destroy", SIGNAL_FUNC(nimrepl.destroy), nil) - + # MainBox (vbox) - var MainBox = vbox_new(False, 0) - add(w, MainBox) - + var mainBox = vbox_new(false, 0) + add(w, mainBox) + # TopMenu (MenuBar) - var TopMenu = menu_bar_new() - show(TopMenu) - - var FileMenu = menu_new() - var OpenMenuItem = menu_item_new("Open") - append(FileMenu, OpenMenuItem) - show(OpenMenuItem) - discard signal_connect(OpenMenuItem, "activate", + var topMenu = menu_bar_new() + show(topMenu) + + var fileMenu = menu_new() + var openMenuItem = menu_item_new("Open") + append(fileMenu, openMenuItem) + show(openMenuItem) + discard signal_connect(openMenuItem, "activate", SIGNAL_FUNC(fileOpenClicked), nil) - var SaveMenuItem = menu_item_new("Save...") - append(FileMenu, SaveMenuItem) - show(SaveMenuItem) - discard signal_connect(SaveMenuItem, "activate", + var saveMenuItem = menu_item_new("Save...") + append(fileMenu, saveMenuItem) + show(saveMenuItem) + discard signal_connect(saveMenuItem, "activate", SIGNAL_FUNC(fileSaveClicked), nil) - var FileMenuItem = menu_item_new("File") + var fileMenuItem = menu_item_new("File") - - set_submenu(FileMenuItem, FileMenu) - show(FileMenuItem) - append(TopMenu, FileMenuItem) - - pack_start(MainBox, TopMenu, False, False, 0) + + set_submenu(fileMenuItem, fileMenu) + show(fileMenuItem) + append(topMenu, fileMenuItem) + + pack_start(mainBox, topMenu, false, false, 0) # VPaned - Separates the InputTextView and the OutputTextView var paned = vpaned_new() set_position(paned, 450) - pack_start(MainBox, paned, True, True, 0) + pack_start(mainBox, paned, true, true, 0) show(paned) # Init the TextBuffers - InputTextBuffer = text_buffer_new(nil) - OutputTextBuffer = text_buffer_new(nil) + inputTextBuffer = text_buffer_new(nil) + outputTextBuffer = text_buffer_new(nil) # InputTextView (TextView) - var InputScrolledWindow = scrolled_window_new(nil, nil) - set_policy(InputScrolledWindow, POLICY_AUTOMATIC, POLICY_AUTOMATIC) - var InputTextView = text_view_new(InputTextBuffer) - add_with_viewport(InputScrolledWindow, InputTextView) - add1(paned, InputScrolledWindow) - show(InputScrolledWindow) - show(InputTextView) - - discard signal_connect(InputTextView, "key-release-event", + var inputScrolledWindow = scrolled_window_new(nil, nil) + set_policy(inputScrolledWindow, POLICY_AUTOMATIC, POLICY_AUTOMATIC) + var inputTextView = text_view_new(inputTextBuffer) + add_with_viewport(inputScrolledWindow, inputTextView) + add1(paned, inputScrolledWindow) + show(inputScrolledWindow) + show(inputTextView) + + discard signal_connect(inputTextView, "key-release-event", SIGNAL_FUNC(inputKeyReleased), nil) - discard signal_connect(InputTextView, "key-press-event", + discard signal_connect(inputTextView, "key-press-event", SIGNAL_FUNC(inputKeyPressed), nil) - + # OutputTextView (TextView) - var OutputScrolledWindow = scrolled_window_new(nil, nil) - set_policy(OutputScrolledWindow, POLICY_AUTOMATIC, POLICY_AUTOMATIC) - var OutputTextView = text_view_new(OutputTextBuffer) - add_with_viewport(OutputScrolledWindow, OutputTextView) - add2(paned, OutputScrolledWindow) - show(OutputScrolledWindow) - show(OutputTextView) - + var outputScrolledWindow = scrolled_window_new(nil, nil) + set_policy(outputScrolledWindow, POLICY_AUTOMATIC, POLICY_AUTOMATIC) + var outputTextView = text_view_new(outputTextBuffer) + add_with_viewport(outputScrolledWindow, outputTextView) + add2(paned, outputScrolledWindow) + show(outputScrolledWindow) + show(outputTextView) + show(w) - show(MainBox) - -nimrod_init() + show(mainBox) + +nim_init() initControls() main() |