Code Monkey home page Code Monkey logo

vim-poplog's Introduction

vim-poplog

WARNING: WORK IN PROGRESS

This project adds support for the pop11 language to the Vim editor. It handles syntax highlighting for *.p files.

Installation

We recommend you use Plug or another vim plugin manager.

For example, using Plug you would add the following to your ~/.vimrc:

Plug 'GetPoplog/vim-poplog'

Syntax coverage

Each part here corresponds to a railroad diagram from "Pop-11: A practical Language for Artificial Intelligence" (R. Barrett, A. Ramsay, A. Sloman). The syntax in this book is out of date, but it is a good starting point.

Once a railroad diagram has been

  • Statement
    • ;
    • =>
    • ==>
  • Definition
    • define
    • enddefine
  • Assignment
    • ->
    • ->>
    • -->
  • Variable
    • nonop
    • nonmac
    • nonsyntax
  • Declaration
    • global
    • lvars
    • vars
    • constant
    • lconstant
  • Varslist
    • macro
    • syntax
  • Sequence
    • ,
    • ;
    • =>
    • ==>
  • Literal
  • Construct
    • List construct
      • []
      • List segment
        • [% <Sequence> %]
    • Vector construct
      • {}
    • Pattern construct
      • []
      • Pattern segment
      • ?
      • ??
      • =
      • ==
  • Label: <word>:
  • Jump: goto <word>
  • Iterative (i)
    • for
    • step
    • till
    • do
    • endfor
  • Iterative (ii)
    • while
    • until
    • for
    • in
    • on
    • from
    • by
    • to
    • foreach
    • endforeach
    • forevery
    • endforevery
    • repeat
    • endrepeat
    • times
    • forever
  • Conditional
    • if
    • unless
    • elseif
    • elseunless
    • else
    • then
    • endif
    • endunless
  • Boolean expression
    • and
    • or
  • Operator expression
  • Function application

Further reading

  • See ref syntax for a list of syntax words in pop11.
  • See Your own syntax highlighted for an excellent guide on writing vim syntax files.

vim-poplog's People

Contributors

willprice avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.