Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
Arian Weber authored and Arian Weber committed Oct 31, 2023
0 parents commit 8696bdb
Show file tree
Hide file tree
Showing 77 changed files with 3,829 additions and 0 deletions.
27 changes: 27 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: Ruby

on:
push:
branches:
- master

pull_request:

jobs:
build:
runs-on: ubuntu-latest
name: Ruby ${{ matrix.ruby }}
strategy:
matrix:
ruby:
- '2.6.6'

steps:
- uses: actions/checkout@v3
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
- name: Run the default task
run: bundle exec rake
13 changes: 13 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
/.bundle/
/.yardoc
/_yardoc/
/coverage/
/pkg/
/spec/reports/
/tmp/
/.vscode/
NuSMV-*/
program-graph.rb

# rspec failure tracking
.rspec_status
3 changes: 3 additions & 0 deletions .rspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
--format documentation
--color
--require spec_helper
10 changes: 10 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# frozen_string_literal: true

source "https://rubygems.org"

# Specify your gem's dependencies in progg.gemspec
gemspec

gem "rake", "~> 13.0"

gem "rspec", "~> 3.0"
97 changes: 97 additions & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
PATH
remote: .
specs:
progg (0.1.0)
config (~> 4.2.1)
ebnf (~> 2.3.4)
plantuml_builder (~> 0.3.0)
rainbow (~> 3.0.0)
thor (~> 1.2.1)

GEM
remote: https://rubygems.org/
specs:
concurrent-ruby (1.2.2)
config (4.2.1)
deep_merge (~> 1.2, >= 1.2.1)
dry-validation (~> 1.0, >= 1.0.0)
deep_merge (1.2.2)
diff-lcs (1.5.0)
docopt (0.5.0)
dry-configurable (0.13.0)
concurrent-ruby (~> 1.0)
dry-core (~> 0.6)
dry-container (0.9.0)
concurrent-ruby (~> 1.0)
dry-configurable (~> 0.13, >= 0.13.0)
dry-core (0.7.1)
concurrent-ruby (~> 1.0)
dry-inflector (0.2.1)
dry-initializer (3.0.4)
dry-logic (1.2.0)
concurrent-ruby (~> 1.0)
dry-core (~> 0.5, >= 0.5)
dry-schema (1.8.0)
concurrent-ruby (~> 1.0)
dry-configurable (~> 0.13, >= 0.13.0)
dry-core (~> 0.5, >= 0.5)
dry-initializer (~> 3.0)
dry-logic (~> 1.0)
dry-types (~> 1.5)
dry-types (1.5.1)
concurrent-ruby (~> 1.0)
dry-container (~> 0.3)
dry-core (~> 0.5, >= 0.5)
dry-inflector (~> 0.1, >= 0.1.2)
dry-logic (~> 1.0, >= 1.0.2)
dry-validation (1.7.0)
concurrent-ruby (~> 1.0)
dry-container (~> 0.7, >= 0.7.1)
dry-core (~> 0.5, >= 0.5)
dry-initializer (~> 3.0)
dry-schema (~> 1.8, >= 1.8.0)
ebnf (2.3.4)
htmlentities (~> 4.3)
rdf (~> 3.2)
scanf (~> 1.0)
sxp (~> 1.2)
unicode-types (~> 1.8)
htmlentities (4.3.4)
link_header (0.0.8)
matrix (0.4.2)
plantuml_builder (0.3.0)
docopt (~> 0.5.0)
rainbow (3.0.0)
rake (13.0.6)
rdf (3.2.11)
link_header (~> 0.0, >= 0.0.8)
rspec (3.12.0)
rspec-core (~> 3.12.0)
rspec-expectations (~> 3.12.0)
rspec-mocks (~> 3.12.0)
rspec-core (3.12.0)
rspec-support (~> 3.12.0)
rspec-expectations (3.12.1)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.12.0)
rspec-mocks (3.12.1)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.12.0)
rspec-support (3.12.0)
scanf (1.0.0)
sxp (1.2.4)
matrix (~> 0.4)
rdf (~> 3.2)
thor (1.2.1)
unicode-types (1.8.0)

PLATFORMS
x86_64-darwin-19

DEPENDENCIES
progg!
rake (~> 13.0)
rspec (~> 3.0)

BUNDLED WITH
2.3.26
29 changes: 29 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Progg

Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/progg`. To experiment with that code, run `bin/console` for an interactive prompt.

TODO: Delete this and the text above, and describe your gem

## Installation

Install the gem and add to the application's Gemfile by executing:

$ bundle add progg

If bundler is not being used to manage dependencies, install the gem by executing:

$ gem install progg

## Usage

TODO: Write usage instructions here

## Development

After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).

## Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/progg.
8 changes: 8 additions & 0 deletions Rakefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# frozen_string_literal: true

require "bundler/gem_tasks"
require "rspec/core/rake_task"

RSpec::Core::RakeTask.new(:spec)

task default: :spec
15 changes: 15 additions & 0 deletions bin/console
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#!/usr/bin/env ruby
# frozen_string_literal: true

require "bundler/setup"
require "progg"

# You can add fixtures and/or initialization code here to make experimenting
# with your gem easier. You can also use a different console, if you like.

# (If you use this, don't forget to add pry to your Gemfile!)
# require "pry"
# Pry.start

require "irb"
IRB.start(__FILE__)
31 changes: 31 additions & 0 deletions bin/progg.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
require "bundler/setup"
require 'progg'

module Progg

class ProggCLI

def run()

Cli::BaseCommand.start()
# executor = Cli::CommandExecutor.new

# executor.exec(ARGV)

# self.parse(ARGV)

# script = ProggScript.new()
# script.interpret('program-graph.rb')

# if params[:help]
# print help
# elsif params.errors.any?
# puts params.errors.summary
# else
# pp params.to_h
# end
end

end

end
8 changes: 8 additions & 0 deletions bin/setup
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/usr/bin/env bash
set -euo pipefail
IFS=$'\n\t'
set -vx

bundle install

# Do any other automated setup that you need to do here
21 changes: 21 additions & 0 deletions calc.ebnf
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
[1] Assignment ::= VARIABLE ':=' IntExpr
[2] Expression ::= BoolExpr

[3] BoolExpr ::= Equivalence
[4] Equivalence ::= Implication (('<->' | '<!>') Implication)*
[5] Implication ::= Disjunction ('=>' Disjunction)*
[6] Disjunction ::= Konjunction ('||' Konjunction)*
[7] Konjunction ::= Negation ('&&' Negation)*
[8] Negation ::= '!' Comparison | Comparison

[9] Comparison ::= Sum (CMPOP Sum)*

[10] IntExpr ::= Sum
[11] Sum ::= Product (('+' | '-') Product)*
[12] Product ::= Value (('*' | '/') Value)*
[13] Value ::= NUMBER | BOOL | VARIABLE | '(' Expression ')'

[14] NUMBER ::= [0-9]+
[15] BOOL ::= 'true' | 'false'
[16] VARIABLE ::= [a-zA-Z_][a-zA-Z0-9_]*
[17] CMPOP ::= '<=' | '>=' | '<' | '>' | '==' | '!='
25 changes: 25 additions & 0 deletions data/config/progg.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@

# The working directory for temporary files and caches
workdir: <%= File.expand_path('.progg', Dir.home) %>

numsv:
path: /Users/arian/Documents/projects/progg/NuSMV-2.6.0-Darwin/bin/NuSMV

# Enable/Disable colored printing all together
use_colors: true
# Enable/Disable colored printing when the output of vsutil
# is not piped into a TTY directly.
use_colors_in_pipe: false
# Colors theme for the TTY
colors:
state: ["deepskyblue", "bold"]
trans: [ "springgreen", "italic" ]
var: [ "limegreen", "italic" ]
cmp: ["deepskyblue", "bold", "italic"]

num: dodgerblue
success: springgreen
warn: khaki
error: red

sidenote: "darkslategray"
13 changes: 13 additions & 0 deletions data/config/theme.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@



prompt:
prompt_format: " %s"
debug: "D "
verbose: "V "
info: ""
warn: ""
error: ""
empty: "~ "
success: ""
question: "» "
5 changes: 5 additions & 0 deletions devprogg
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/sh

# Simple wrapper to run vsutil during development.

ruby -Ilib ./exe/pg-tools "$@"
Binary file added doc/definition.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/diagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 8696bdb

Please sign in to comment.