Skip to content

Instantly share code, notes, and snippets.

View aripiprazole's full-sized avatar
🎯
Focusing

Gabrielle Guimarães de Oliveira aripiprazole

🎯
Focusing
View GitHub Profile
@aripiprazole
aripiprazole / .vimrc
Created July 16, 2020 06:33
Neovim configuration, also usable in vim.
"
"
" Vim/Nvim configuration
"
" https://github.com/tpope/vim-fugitive
" https://github.com/udalov/kotlin-vim
" https://github.com/junegunn/vim-plug
" https://github.com/puremourning/vimspector
"
@aripiprazole
aripiprazole / json.main.kts
Last active August 22, 2022 11:34
Top-down JSON parser
sealed class Json {
data class Array(val items: Collection<Json>) : Json()
data class Object(val fields: Map<String, Json>) : Json()
data class Text(val text: String) : Json()
data class Numeric(val numeric: Double) : Json()
sealed class Bool(val bool: Boolean) : Json() {
object True : Bool(true) {
override fun toString(): String = "False"
}
@aripiprazole
aripiprazole / Google.py
Last active August 22, 2022 11:33
Migrating youtube playlist
import pickle
import os
from google_auth_oauthlib.flow import Flow, InstalledAppFlow
from googleapiclient.discovery import build
from googleapiclient.http import MediaFileUpload, MediaIoBaseDownload
from google.auth.transport.requests import Request
def Create_Service(client_secret_file, api_name, api_version, *scopes):
print(client_secret_file, api_name, api_version, scopes, sep='-')
@aripiprazole
aripiprazole / lexing.rs
Last active August 22, 2022 11:38
Simple programming language
// Simple programming language
// Copyright (C) 2022 Gabrielle
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
@aripiprazole
aripiprazole / ast.rs
Last active August 22, 2022 11:30
Parser for a typed lox programming language
/*
* Rox is a simple object oriented language with non static typing
* Copyright (C) 2022 Gabrielle Guimarães de Oliveira
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
/*
* The contents of this file is free and unencumbered software released into the
* public domain. For more information, please refer to <http://unlicense.org/>
*/
@file:OptIn(KordVoice::class, ObsoleteCoroutinesApi::class)
package gragas.play
import com.sedmelluq.discord.lavaplayer.player.AudioLoadResultHandler
@aripiprazole
aripiprazole / Session.kt
Created August 15, 2022 03:46
Empty server with Andesite
import andesite.protocol.ProtocolPacket
import andesite.protocol.extractPacketId
import andesite.protocol.java.JavaPacket
import andesite.protocol.readVarInt
import andesite.protocol.serialization.MinecraftCodec
import andesite.protocol.writeVarInt
import io.ktor.network.sockets.Socket
import io.ktor.network.sockets.openReadChannel
import io.ktor.network.sockets.openWriteChannel
import io.ktor.utils.io.core.buildPacket
package ekko.tree
/**
* Type schemes are used to describe qualified types.
* Each TGen that appears in [qual] represents a generic that the kind is given
* by `[kinds] !! n`.
*/
data class Scheme(val kinds: List<Kind>, val qual: Qual<Typ>) {
companion object {
fun forall(vararg args: Kind) = fun(qual: Qual<Typ>): Scheme {
package ekko.tree
/**
* Types can be quantified by adding a list of predicates [predicates], to restrict
* the ways in which type variables is instantiated.
*
* Example of `Num a => a`(in haskell):
* ```kt
* val predicates = listOf(IsIn(TVar(Ident("a", KStar), Ident("Num"))))
*
package ekko.typing
import ekko.tree.Alt
import ekko.tree.EAbs
import ekko.tree.EApp
import ekko.tree.EGroup
import ekko.tree.ELet
import ekko.tree.ELit
import ekko.tree.EVar
import ekko.tree.Exp