Skip to content

Instantly share code, notes, and snippets.

@nmz787
nmz787 / antlr_lexer_test.py
Created Oct 22, 2020
ANTLR Python Lexer unit-testing
View antlr_lexer_test.py
from antlr4 import CommonTokenStream, InputStream, Token
# from mytool.parsers.error_listener import MyErrorListener
def getTokensFromText(input_string, MyLexer):
input_stream = InputStream(input_string)
lexer = MyLexer(input_stream)
# lexer.addErrorListener(MyErrorListener)
stream = CommonTokenStream(lexer)
stream.fill()
View Gds2png.py
import os.path
from gdsCAD import *
from PIL import Image, ImageDraw
#l = core.GdsImport(os.path.abspath("wafer.GDS"), verbose=True)
#l2, l4 = utils.split_layers(a, [2,4])
l4_gds = core.GdsImport(os.path.abspath("die5_from_topleft_layer4_slits_shown.GDS"), verbose=True)
l2_gds = core.GdsImport(os.path.abspath("die5_from_topleft_layer2_shown.GDS"), verbose=True)
@nmz787
nmz787 / Lexer.g4
Last active May 19, 2020
ANTLR not working for some reason that I can't figure out
View Lexer.g4
lexer grammar Lexer;
fragment WS: [\t ]+;
fragment NL: WS? ('\r'* '\n')+;
COLON_ATTRIBUTES: ('KeyId' |
'first key' |
'key' |
'key (interesting)' |
'key(# of 1second)' |
'key.subkey')+ -> mode(COLON_ATTRIBUTES_MODE);
View Lexer.g4
lexer grammar Lexer;
fragment WS: [\t ]+;
fragment NL: WS? ('\r'* '\n')+;
COLON_ATTRIBUTES: ('KeyId' |
'first key' |
'key' |
'key (interesting)' |
'key(# of 1second)' |
'key.subkey')+ -> mode(COLON_ATTRIBUTES_MODE);
@nmz787
nmz787 / mks_901p.py
Created Dec 29, 2019
work in progress MKS 901P vacuum transducer sensor library and command-line program.
View mks_901p.py
"""
usage: mks_901p.py [-h] [--find_baud] [--baud BAUD] [-unit] serial_port
positional arguments:
serial_port the Windows COM port or path to a linux serial port
optional arguments:
-h, --help show this help message and exit
--find_baud tries to access the sensor over all supported baud rates,
prints which is successful
@nmz787
nmz787 / pbm_viewer.py
Last active Jan 3, 2020
PBM image viewer for gigapixel files - CTRL O to open a file, press enter in the text boxes to update screen
View pbm_viewer.py
__license__ = """
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation; either version 2.1 of the
License, or (at your option) any later version.
As a special exception, the copyright holders of this library
hereby recind Section 3 of the GNU Lesser General Public License. This
means that you MAY NOT apply the terms of the ordinary GNU General
Public License instead of this License to any given copy of the
View image_gds_packer.py
# -*- coding: utf-8 -*-
"""
Convert a dir of image files to a GDS file, all packed in together
"""
import os
import cv2
import sys
import math
from gdsCAD import *
@nmz787
nmz787 / convert_fib_str.py
Last active Feb 1, 2019
image 2 FIB and FIB 2 image - requires openCV, wxPython, PIL, numpy
View convert_fib_str.py
#!/usr/bin/python
""" image 2 FIB and FIB 2 image
Usage:
convert_fib_str.py fromstr <str> [--video] [--out=<out_file_path>]
convert_fib_str.py tostr <image> [--out=<out_file_path>] [--stretch] [--invert]
"""
# from __future__ import print_function
import traceback
import sys
import math
@nmz787
nmz787 / rounded_cube_test.py
Last active Sep 14, 2018
test rounded edge.stl brlcad-python-tcl
View rounded_cube_test.py
from python_brlcad_tcl.brlcad_tcl import *
class rounded_cube(BrlCadModel):
def __init__(self, brl_db):
super(rounded_cube, self). __init__(brl_db)
self.center_name = None
self.edge = 10
c1 = [0, 0, 0]
c2 = [self.edge, self.edge, self.edge]
View print_font5x7.hex_.py
"""
parse and print the characters stored in the HEX ROM associated with the MAX1000 POV LED TEXT demo
(here: https://github.com/vpecanins/max1000-tutorial/tree/master/demo02_led_text)
.hex format is:
First character (:) = Start of a record
Next two characters = Record length (in this example, 10h)
Next four characters = Load address (in this example, 0080h)